在本地主机和 IIS 上查看 Oracle 表的问题

Issues with viewing Oracle tables on local host and IIS

我收到两个错误,这取决于我使用的参考文献,但我认为它们都是相对相似的问题。

此引用的第一个错误:

Using System.Data.OracleClient;

这会导致错误:

Attempt to load Oracle client libraries threw BadImageFormatException.  This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.

我知道这个参考已经过时了,所以我使用了这个 Oracle 参考:

Using Oracle.DataAccess.Client;

但这给我一个错误:

The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception

这两个引用都适用于我在本地主机上的 Oracle 存储过程,但是当我 运行 IIS 中的页面时它们会抛出这些错误。在我的服务器上,我安装了 Oracle 64 位客户端,但在我的实际计算机上,我安装了 32 位客户端。

我的主要问题是:为什么 Oracle 数据库会连接到本地主机上的服务器,并完美地执行我的存储过程,即使我的机器上安装了 32 位客户端和 64 位客户端服务器?

我在 IIS 的应用程序池中启用了 32 位应用程序,但这并没有解决问题。我也曾尝试将 64 位 Oracle .dll 复制到我的项目中,但这也没有用。

在我的机器上安装 64 位客户端,然后使用正确的 oracle .dll 重建项目是否可以解决问题?我还需要重新生成另一个连接字符串吗?

谢谢

正如 Luke Woodward 所发布的那样,通过将 Oracle.DataAccess.Client 更改为 Oracle.ManagedDataAccess.Client,代码运行起来非常顺畅。谢谢卢克!