我正在尝试运行此web应用程序。我一直收到这样的错误:“无法加载文件或程序集"Oracle.DataAccess”或它的依赖项之一。试图加载格式不正确的程序。“异常详情: System.BadImageFormatException。无法加载文件或程序集"Oracle.DataAccess“或其依赖项之一。试图加载格式不正确的程序。下面是我已经尝试过的东西。
我有安装在64位机器上的32位客户端。操作系统是windows7。
使用以下语句gacutil
在GAC上注册32位
gacutil /i %ORA_HOME4%\asp.net\bin\4\oracle.web.dll
对于上述两个语句,我将驱动器从c:\Program Files(x86)\Microsoft sdk\windows\v7.0A\Bin\NETFX4.0 Tools\X64复制到C:\ gacutil.exe,然后
我执行了上面的两条语句:
gacutil %ORA_HOME4%\odp.net\bin\4\Oracle.DataAccess.dll /i gacutil /i %ORA_HOME4%\asp.net\bin\4\oracle.web.dll当我执行上述两条语句时,我没有收到任何消息,我是在Dos窗口中以管理员权限执行它们的。
c:\windows\Microsoft.Net\V4.0.30319\temporary ASP.net files我还将web应用程序构建平台目标更改为X86,最初的目标是"ANy CPU“。出于沮丧,我还尝试将平台目标更改为X64,然后收到错误消息
“Cold not load file或assemble .webapp”或其依赖项之一。试图加载格式不正确的程序。
我的计算机上没有安装IIS,我在visual studio 2010中运行此应用程序,因此我认为它将使用visual studio附带的内置IIS。
我花了很多时间来解决这个问题,但仍然一次又一次地得到相同的错误。
发布于 2016-07-28 21:20:58
当我从一台机器移动到另一台机器并重新安装所有东西时,我又遇到了这个问题。在我的例子中,我同时使用32位和64位的Oracle ODP.NET安装。
当在我的新机器上列出程序集时,我得到了以下列表
C:\oracle\product\11.2.0\X64\odp.net\bin\4>gacutil /l|findstr Oracle.DataAccess
Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Policy.2.102.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Policy.2.111.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Policy.2.112.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
Policy.4.112.Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
这里只能看到64位的DLL。
我在web.config上看不到它,但我使用的是32位版本。
当我用GACutil检查我的旧机器时,我看到了更多的DLL,还有X86的。
通过重新应用注册过程修复(此处引用的x32/x64版本)
OraProvCfg.exe /action:gac /providerpath:C:\oracle\product\11.2.0\x32\ODP.NET\bin\4\Oracle.DataAccess.dll
OraProvCfg.exe /action:gac /providerpath:C:\oracle\product\11.2.0\x64\ODP.NET\bin\4\Oracle.DataAccess.dll
在那之后,Visual Studio是一只快乐的兔子,为我重新编译了所有的东西。
发布于 2014-01-16 07:13:40
尝试这样做:打开IIS管理器,更改应用程序池的高级设置,将启用32位应用程序更改为false。
发布于 2014-09-05 18:58:18
我通过以下步骤找到了解决方案:
Oracle.DataAcces.dll
引用,并将新的引用添加到:
C:\windows\assembly\GAC\Oracle.DataAccess\X.XXX.X.XX__89b483f429c47342/oracle.dataaccess.dll
希望能有所帮助
https://stackoverflow.com/questions/18779518
复制相似问题