在禁用IIS 7.5的Windows Server 2008上实现Oracle.Web.dll,Oracle.DataAccess.dll 64位失败

时间:2015-04-10 20:54:19

标签: asp.net-mvc-4 oracle11g iis-7.5 32bit-64bit windows-server-2008-r2

使用此环境成功测试我的MVC4程序

Oracle 32-bit working

我尝试使用不允许32位应用程序的IIS将其发布到64位Windows 2008 Server,然后我开始陷入异常:引用的dll的依赖项无法找到!

我尝试了互联网可以给我的所有建议,包括修改web.config以反映他们的dll'在部署到服务器win 2008使用全局缓存cmd'在提示符!

然而没有任何作用。 32位工作但64位是平的!

Oracle x64 flat broke

1 个答案:

答案 0 :(得分:1)

首先,我不再乱搞web.config。然后,我在Windows 2008服务器上重新安装了Oracle 11g 64。最后,我将ODAC置于11gx64的安装之上。成功的关键是找到正确的ODAC以匹配您系统上的Oracle版本。

http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

要验证您在oracle 11 g上正确安装了正确的ODAC,您必须查看[asp.net]和[ODP.net]目录以确保它们在每个bin中都有2.x和4的dirs并且存在于全局缓存中64。

installOracle64withODAC

GAC_64 Assembly view for Oracle.Dataaccess and Oracle.Web

Ater解决了ODAC安装问题,我开始尝试使用oracle客户端dll。我将bin [2.x]中的Oracle.DataAccess.dll(64位)复制到我的应用程序的编译bin只是为了观察我的程序仍然因为无法找到依赖DLL的相同投诉而崩溃。然后我从bin [4]复制了Oracle.DataAccess.dll,然后一切正常!!

现在剩下的问题是为什么在寄存器缓存中找不到4.112.4 GAC_64工作得很好但是在GAC_64中注册的dll集打破了程序?不禁迷茫。

查看工作dlls的结果视图==>

installOracle64 with working dll

如果您获得了我在这种情况下显示的所有屏幕,那么您的MVC4应用程序应该与Oracle 11 g 64位客户端一起飞得更高!祝好运!我会和你分享我的!