C# 在本地主机和IIS上查看Oracle表时出现问题

C# 在本地主机和IIS上查看Oracle表时出现问题,c#,asp.net,oracle,iis,odbc,C#,Asp.net,Oracle,Iis,Odbc,我收到两个错误,这取决于我使用的参考文献,但我认为它们都是相对类似的问题 此引用的第一个错误: Using System.Data.OracleClient; Using Oracle.DataAccess.Client; 这会导致以下错误: Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode wi

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

此引用的第一个错误:

Using System.Data.OracleClient;
Using Oracle.DataAccess.Client;
这会导致以下错误:

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.
The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception
我知道此引用已折旧,因此我使用了此Oracle引用:

Using System.Data.OracleClient;
Using Oracle.DataAccess.Client;
但这给了我一个错误:

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.
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重新构建项目可以解决问题吗?我还需要重新生成另一个连接字符串吗


谢谢

正如作者所发布的,通过将Oracle.DataAccess.Client更改为Oracle.ManagedDataAccess.Client,代码运行起来很有魅力。谢谢你,卢克

如发布者所述,通过将Oracle.DataAccess.Client更改为Oracle.ManagedDataAccess.Client,代码运行起来就像一个符咒。谢谢你,卢克

您是否尝试过使用Oracle托管数据访问(Oracle.ManagedDataAccess.dll)?该程序集是MSIL,因此可以帮助您避免任何32位/64位体系结构不匹配错误。我在前面的评论中询问是否仍然需要Oracle.DataAccess.Client,但我意识到您可以使用Oracle.ManagedDataAccess.Client。我明天会检查,看看这是否解决了问题。谢谢你的意见!您是否尝试过使用Oracle托管数据访问(Oracle.ManagedDataAccess.dll)?该程序集是MSIL,因此可以帮助您避免任何32位/64位体系结构不匹配错误。我在前面的评论中询问是否仍然需要Oracle.DataAccess.Client,但我意识到您可以使用Oracle.ManagedDataAccess.Client。我明天会检查,看看这是否解决了问题。谢谢你的意见!