我正在实现一个实现以下方法的WCF数据服务: http://debugmode.net/2010/06/13/introduction-to-wcf-data-service-and-odata/
我安装了以下 beta ODAC组件: http://www.oracle.com/technetwork/topics/dotnet/downloads/oracleefbeta-302521.html
当我在Visual Studio 2010中运行解决方案时,它会完美地返回数据,当我将应用程序部署到IIS 7时,它会引发以下异常:
底层提供程序在Open上失败。
我检查了两者中的连接字符串,它们设置相同,我唯一能想到的,我认为这是一个无问题的是Oracle客户端组件安装TNSNAMES.ora
和{{1在以下位置:
用户名
有2个sqlnet.ora
C:\app\<username>\product\11.2.0\client_1\Network\Admin
还有一个用于oraclebase -
C:\app\<username>\product\11.2.0\client_2\Network\Admin
我已将工作文件复制到所有正确的位置,事实上,我可以通过SQL Plus完美连接
我的直觉告诉我,运行IIS的应用程序池/标识未加载正确的配置值,但是,我更改了应用程序池帐户以在-my-帐户下运行。
这是从ASP.NET应用程序中使用的连接字符串(如果它有帮助)
C:\app\oraclebase\product\11.2.0\client_1\Network\Admin
顺便说一句,我在同一台服务器上有另一个WCF数据服务,它指向一个SQL实例,并且只是漂亮地提取数据,该应用程序池上的身份存在问题,但是已经解决了。
任何人都知道它可能是什么?
注意:我也在代码中的实体上执行connection.open()和connection.close()。
答案 0 :(得分:1)
我解决了这个问题。问题是我的应用程序池未配置为启用32位应用程序。 ODAC组件是32位。
在一个关于某种方式的回合中,this post也很有帮助,以帮助理解配置Oracle连接的各个活动部分。