即使在为11g安装oracle即时客户端之后,asp.net应用程序也没有连接到oracle 11g

时间:2015-05-14 06:25:21

标签: c# oracle oracle11g odp.net oracle12c

我有一个使用oracle 11g数据库的asp.net mvc应用程序。在开发机器中,每件事都运行良好,但在生产服务器中部署asp.net应用程序时无法连接到数据库服务器。它总是抛出一个空的异常。

我还写了一个简单的控制台应用程序来测试数据库连接。它也不起作用。然后我意识到这是因为该机器没有安装oracle客户端。所以我为11g数据库32位版本安装了Oracle即时客户端。在此之后,控制台应用程序开始工作,但Web应用程序仍然无法连接。

我谷歌很多,最后决定分析使用进程监视器。在进程监视器中,我发现Web应用程序(iis)正在寻找oraclient12.dll。

这个oraclient12.dll是12c数据库的oracle客户端的一部分。我无法理解它为什么要寻找这个dll。

enter image description here

安装oracle数据库客户端12g后,oraclient12.dll的上述问题得到修复。但是iis现在无法找到oraclsce12.dll。 我在整个文件系统中搜索了这个文件,却找不到。

有谁知道我应该安装什么才能获得oraclsce12.dll。

enter image description here

谢谢, Sujith

2 个答案:

答案 0 :(得分:5)

我遇到了类似的问题,然后才知道要安装dll,你现在应该安装选项«Oracle Advanced Security»,,在安装oracle 12时选择自定义安装客户。我做了同样的事情,我的问题得到了解决。您可以尝试这一点,看看您的问题是否得到解决。

感谢Sudharsan

答案 1 :(得分:0)

这被记录为Oracle bug 17379890

Oracle提供了两种解决方法:

  

解决方法包括:

     

为避免出现此问题,请在安装过程中明确选择“ Oracle NET”组件

     

事后,您可以

     
      
  1. 在同一家庭中进行另一个自定义安装,然后选择“ Oracle NET”
  2.   
  3. 从现有安装中将ORACLSCE12.DLL复制到OH \ bin也可以解决此问题。
  4.   

但是,仅复制文件ORACLSCE12.DLL还是不够的,因为缺少更多文件。解决方法仅适用于某些应用程序。例如对于tnsping.exe,由于缺少文件,您仍然会收到错误消息。

您必须采用第一个解决方案,即在安装过程中明确选择“ Oracle NET”组件