我有一个使用oracle 11g数据库的asp.net mvc应用程序。在开发机器中,每件事都运行良好,但在生产服务器中部署asp.net应用程序时无法连接到数据库服务器。它总是抛出一个空的异常。
我还写了一个简单的控制台应用程序来测试数据库连接。它也不起作用。然后我意识到这是因为该机器没有安装oracle客户端。所以我为11g数据库32位版本安装了Oracle即时客户端。在此之后,控制台应用程序开始工作,但Web应用程序仍然无法连接。
我谷歌很多,最后决定分析使用进程监视器。在进程监视器中,我发现Web应用程序(iis)正在寻找oraclient12.dll。
这个oraclient12.dll是12c数据库的oracle客户端的一部分。我无法理解它为什么要寻找这个dll。
安装oracle数据库客户端12g后,oraclient12.dll的上述问题得到修复。但是iis现在无法找到oraclsce12.dll。 我在整个文件系统中搜索了这个文件,却找不到。
有谁知道我应该安装什么才能获得oraclsce12.dll。
谢谢, Sujith
答案 0 :(得分:5)
我遇到了类似的问题,然后才知道要安装dll,你现在应该安装选项«Oracle Advanced Security»,,在安装oracle 12时选择自定义安装客户。我做了同样的事情,我的问题得到了解决。您可以尝试这一点,看看您的问题是否得到解决。
感谢Sudharsan
答案 1 :(得分:0)
这被记录为Oracle bug 17379890。
Oracle提供了两种解决方法:
解决方法包括:
为避免出现此问题,请在安装过程中明确选择“ Oracle NET”组件
事后,您可以
- 在同一家庭中进行另一个自定义安装,然后选择“ Oracle NET”
- 从现有安装中将ORACLSCE12.DLL复制到OH \ bin也可以解决此问题。
但是,仅复制文件ORACLSCE12.DLL
还是不够的,因为缺少更多文件。解决方法仅适用于某些应用程序。例如对于tnsping.exe
,由于缺少文件,您仍然会收到错误消息。
您必须采用第一个解决方案,即在安装过程中明确选择“ Oracle NET”组件