我在加载oracle.dataaccess时遇到问题。这是我得到的信息:
无法加载文件或程序集'Oracle.DataAccess,Version = 2.112.1.0,Culture = neutral,PublicKeyToken = 89b483f429c47342'或其依赖项之一。试图加载格式不正确的程序。
我的web.config中有以下条目。
<add assembly="Oracle.DataAccess, Version=2.112.1.0, Culture=neutral,
PublicKeyToken=89b483f429c47342"/>
在议会下
和
<dependentAssembly>
<assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342"
Culture="neutral" />
<BindingRedirect oldVersion = "2.112.1.2" newVersion = "2.112.1.0" />
</dependentAssembly>**
我正在使用Windows Vista计算机上的Visual Studio 2008进行开发。我为32位应用程序启用了IIS 7.0应用程序池,此项目的平台目标是x86而不是“任何CPU”。
我仍在试图弄清楚在这种情况下到底出了什么问题。
答案 0 :(得分:3)
似乎问题是您安装了64位客户端,Visual Studio无法识别它,因为它是一个32位应用程序。不幸的是,我发现最好的解决方案是在同一台机器上安装32位和64位客户端。我在 C:\ Oracle \ 11gClient32 中安装一个,在 C:\ Oracle \ 11gClient64 中安装另一个。您应首先安装32位版本,然后安装64位版本。
请记住,您需要在 [oracle] \ network \ admin 文件夹中维护两个sqlnet.ora和tnsnames.ora(或ldap.ora)副本。
答案 1 :(得分:1)
Oracle.DataAccess程序集存在于32位和64位版本中。检查项目引用的程序集的位数,对于32位(x86)应用程序,它必须是32位。
答案 2 :(得分:1)
确保将Oracle客户端软件安装到计算机上。简单地引用Oracle.DataAccess并不是开箱即用的。 ODAC
答案 3 :(得分:0)
你确定你已经添加了组件吗?还...确定令牌?最后......确定上面建议的32/64兼容性?
答案 4 :(得分:0)
我也有类似的问题,我收到了以下错误:
Unhandled exception: System.BadImageFormatException: Could not load file or
assembly 'Oracle.DataAccess, Version=2.112.1.0, Culture=neutral,
PublicKeyToken=89b483f429c47342' or one of its dependencies. An attempt was
made to load a program with an incorrect format.
它在我的本地系统中正常工作,我安装了32位和64位版本的dll。但在服务器中,只安装了64位版本,我不允许进行任何安装。
所以遵循以下步骤:
1)The project reference pointed to OracleDataAccess.dll , version 64 bit.
2)In the project properties -> Build -> Platform target : x64. So when you
select x64, Prefer 32-bit option would be unchecked automatically. Then I
did re-build of the project and deployed.
最后我可以成功连接到oracle数据库。
答案 5 :(得分:-2)
如果是64位问题,您可以尝试将目标CPU更改为x86(项目属性 - 编译选项卡 - 高级编译选项 - 目标CPU)并重新编译。
这对我有用。