我收到两个错误,这取决于我使用的是什么参考,但我认为它们都是相对类似的问题。
此参考的第一个错误:
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解决了这个问题?我还需要重新生成另一个连接字符串吗?
由于
答案 0 :(得分:0)
由Luke Woodward发布,通过将Oracle.DataAccess.Client更改为Oracle.ManagedDataAccess.Client,代码就像魅力一样运行。谢谢卢克!