具有 32 位 Oracle 客户端的 SSRS 报表在 64 位环境中不起作用



我在 BIDS 2008 中使用 32Bit Oracle 客户端构建有一个 SSRS 报告,报告在 BIDS (VS 2008) 中运行良好,但是当部署到 Win2k3 64 位服务器上的报告管理器时,它失败并显示以下错误

"尝试加载 Oracle 客户端库抛出了 BadImageFormatException。在安装了 32 位 Oracle 客户端组件的 64 位模式下运行时,会出现此问题。

我已经浏览了几篇建议使用 32 位和 csscript Enable32Biton64 'true' 启用 IIS 到 aspnet_regiis-i 的文章,但问题是我还有其他需要 64 位功能的应用程序,所以无法做到这一点。

请建议我这样做的方法。蒂亚。

在服务器上安装 Oracle 64 位客户端工具,例如

http://www.oracle.com/technetwork/topics/winx64soft-089540.html

这是我第二次配置类似的服务器,也是我第二次花费数小时来解决这个问题。如果没有其他人,我写这篇文章是为了未来的我。这适用于Windows Server 2012 R2 64位,8GB RAM,300 + GB HDD,Intel Xeon CPU E5620 @ 2.40GHz,运行Microsoft SQL Server Reporting Services 2012 64位和IIS 7.0,Web应用程序使用Oracle Client 32位连接System.Data.OracleClient

  1. 安装 64 位客户端
  2. 将 Oracle 清单目录的名称 @ "C:\Program Files\
  3. Oracle" 更改为 "C:\Program Files\Oracle64"
  4. 重新启动计算机并测试从 SSRS 到 Oracle 的连接
  5. 安装 32 位客户端并为其主目录指定其他位置
  6. 重新启动计算机并测试从 SSRS 到 Oracle 以及从 Web 应用程序到 Oracle 的连接

我希望这对我未来的自己和他人有所帮助:)

请不要使用 64 位 oracle,复制 tnsnames.ora 并重新启动服务器,我遇到了同样的问题,完成后它工作正常。

我在运行SSRS 2014时遇到了同样的问题。尝试安装SSRS 2016(版本14.0.609.142),同样的问题。测试连接工作正常,但是当我想继续配置时,我收到消息

在安装了 32 位 Oracle 客户端组件的 64 位模式下运行时,会出现此问题

我尝试配置 ODBC 连接,发现报表服务器只在 32-odbc 服务器中查找。

接下来,我安装了最新的 Oracle 32 位客户端 (12.2.0.1.0)。然后一切都很好!

因此,即使错误消息要求 64 位驱动程序而不是 32 位驱动程序,实际情况恰恰相反。

最新更新