无法加载文件或程序集'Oracle.DataAccessVersion = 9.2.0.700,Culture = neutral,PublicKeyToken = 89b483f429c47342'

时间:2012-05-08 15:41:54

标签: asp.net oracle iis-7.5 odp.net

无法加载文件或程序集“Oracle.DataAccess,Version = 9.2.0.700,Culture = neutral,PublicKeyToken = 89b483f429c47342”或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)

我使用odac 32位版本11.2.0.3.0开发了应用程序。在哪里工作绝对正常。但是部署到另一台电脑,我用32位客户端版本11.2.0.3.0安装IIS 7.5我总是遇到上述错误。

我不知道它在哪里获得oracle.DataAccess,版本= 9.2.0.700。我整天都试着解决这个问题。但仍然没有运气。请帮助我摆脱我真正感到可悲的情况。

5 个答案:

答案 0 :(得分:3)

我终于得到了解决方案。我只需要将程序集重定向到web.config文件中的当前程序集,如下所示:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
 <dependentAssembly>
  <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342"   culture="neutral"/>
<bindingRedirect oldVersion="9.2.0.700" newVersion="4.112.3.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>

感谢大家的亲切合作,并知道什么感觉大为宽慰。

答案 1 :(得分:2)

如果您在gac中使用ODP.Net检查程序集版本以及它所针对的平台。您可以通过从visual studio工具打开命令提示符并使用以下命令找到该信息

gacutil /l oracle.dataaccess

如果处理器体系结构是x86,那么请确保允许您的应用程序池运行32位版本的程序集。这可以通过右键单击相应的

来完成。
   application pool->advanced settings->Enable 32 bit Application to true.

答案 2 :(得分:0)

也许您正在引用引用此其他版本的dll,即使该直接项目不是?请务必查看所有dll上的参考文献。

答案 3 :(得分:0)

版本和运行时版本可能不一样,之前让我搞砸了。

对于引用,请在项目工作的计算机上的解决方案资源管理器中选择对Oracle.DataAccess的引用。现在查看属性窗口并检查路径。

最后,转到失败的机器,确保同一个dll生活在完全相同的路径上。

你也可以通过在dll的属性中打开“copy local”来解决这个问题,但我不认为这被认为是“最佳实践”。

答案 4 :(得分:0)

转到这个地址并阅读答案: Could not load file or assembly after upgrading DevExpress

  

在solutionExplorer中:切换到文件视图并更改

CopyLocal = true 
     

服务器中的所有 DevExpress 程序集 和    ServerGenerated 项目。它为我解决了这个问题。你可以尝试一下,让我知道这有用吗?