无法加载文件或程序集'Oracle.Web,版本= 2.112.1.0 ...系统找不到指定的文件。(它已经加载到我的 GAC 中)

4
我正在尝试运行引用Oracle.Web的Web应用程序,该程序已经加载到我的GAC中:
当我运行我的Web应用程序时,会出现错误消息:
Oracle.Web DLL是32位的。
编辑:这里是Oracle.Web的程序集绑定失败日志打印输出。基本上,它无法从GAC中加载:
*程序集绑定器日志条目(2013年6月19日@ 10:20:49 AM)*
操作失败。 绑定结果:hr = 0x80070002。系统找不到指定的文件。
程序集管理器从以下位置加载:C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll 在可执行文件c:\windows\system32\inetsrv\w3wp.exe下运行
--- 详细的错误日志如下: === 预绑定状态信息 === LOG: 用户 = IIS APPPOOL\DefaultAppPool LOG: 显示名称 = Oracle.Web, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342 (完全指定) LOG: 应用程序基础目录 = file:///C:/blah/HR/ForHR/HRWS/ LOG: 初始私有路径 = C:\blah\HR\ForHR\HRWS\bin LOG: 动态基础 = C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\HRws\c1e0f910 LOG: 缓存基础 = C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\HRws\c1e0f910 LOG: 应用程序名称 = 1f90b2c5 调用程序集: (未知)。 === LOG: 此绑定在默认加载上下文中启动。 LOG: 使用应用程序配置文件: C:\blah\HR\ForHR\HRWS\web.config LOG: 使用主机配置文件: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Aspnet.config LOG: 使用计算机配置文件: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\config\machine.config。 LOG: 后策略引用: Oracle.Web, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342 LOG: GAC 查找失败。 LOG: 尝试下载新的 URL file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/Temporary ASP.NET Files/HRws/c1e0f910/1f90b2c5/Oracle.Web.DLL。 LOG: 尝试下载新的 URL file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/Temporary ASP.NET Files/HRws/c1e0f910/1f90b2c5/Oracle.Web/Oracle.Web.DLL。 LOG: 尝试下载新的 URL file:///C:/blah/HR/ForHR/HRWS/bin/Oracle.Web.DLL。 LOG: 尝试下载新的 URL file:///C:/blah/HR/ForHR/HRWS/bin/Oracle.Web/Oracle.Web.DLL。 LOG: 尝试下载新的 URL file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/Temporary ASP.NET Files/HRws/c1e0f910/1f90b2c5/Oracle.Web.EXE。 LOG: 尝试下载新的 URL file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/Temporary ASP.NET Files/HRws/c1e0f910/1f90b2c5/Oracle.Web/Oracle.Web.EXE。 LOG: 尝试下载新的 URL file:///C:/blah/HR/ForHR/HRWS/bin/Oracle.Web.EXE。 LOG: 尝试下载新的 URL file:///C:/blah/HR/ForHR/HRWS/bin/Oracle.Web/Oracle.Web.EXE。 LOG: 所有探测 URL 均未成功。

问题: 有人知道我遇到这个问题的原因吗?


3
当你按照错误提示的建议打开日志记录时,发生了什么? - Eric Lippert
@EricLippert 请查看上面编辑过的帖子。 - Mike Marks
我不太确定 C:\Windows\assembly 是全局程序集缓存的实际位置。你是如何将程序集加载到全局程序集缓存中的?你只是简单地将它复制到那个目录中吗? - svick
你说 The Oracle.Web DLL is 32-bit. 但是却试图加载64位的 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll,你知道为什么吗? - Aristos
2个回答

4

您需要在 IIS 中的应用程序池中启用32位应用程序。

打开 IIS>应用程序池>启用32位应用程序=true


1
我不确定为什么这样做不起作用,但我所做的就是简单地安装了ODAC 11.2 Release 5的32位和64位版本,这样就可以在GAC中注册所有必需的程序集,还有其他几个任务。安装完成后,我运行了应用程序,它正常工作了。感谢所有做出贡献的人。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接