尝试使用IIS 8.5中承载的WCF服务时出现以下错误。 The underlying provider failed on Open.
我正在使用Oracle DB 11G
。从IIS连接到Oracle DB。错误:打开底层提供程序失败
从我的开发环境,我可以连接到Oracle DB
没有问题。如果我只是在Visual Studio中运行WCF服务并运行客户端应用程序。我也可以从Visual Studio
内连接到Oracle实例并使用该服务。
我不确定在哪里看。最后,我关闭了开发服务器上的防火墙,以查看是否有任何问题。我也能够成功地Ping Oracle Server。
下面是从IIS连接字符串:
metadata=res://*/OracleDB.csdl|res://*/OracleDB.ssdl|res://*/OracleDB.msl;provider=Oracle.ManagedDataAccess.Client;
provider connection string="DATA SOURCE=INSTANCE_TNSNAMES;PASSWORD=MyPassword;
PERSIST SECURITY INFO=True;USER ID=MyUserID"
这是连接字符串通过的NuGet添加到应用程序时,Oracle管理驱动程序安装在Visual Studio中,它是在应用程序相同的字符串。
更新:这里是我试过的事情的清单:
事情我已经尝试:
-
在Windows服务器上运行
- 安装Oracle即时客户端IIS
- 在环境变量 创建TNS_ADMIN变量
- 设置路径到Oracle即时客户端
- 将ODBC驱动程序添加(安装)到即时客户端文件夹
- 创建和配置的tnsnames.ora
仍然得到了同样的错误:
在托管IIS的服务器上您是否安装了正确版本的Oracle客户端,具有正确的TNS名称? –
在Windows Server 2012 R2上安装并运行IIS。我需要在此服务器上安装Oracle客户端吗? – Asynchronous
是的,oracle客户端也需要在此服务器上进行安装,您需要确保oracle客户端与您所测试的相同,并且TNSNames文件和测试机器上的任何其他文件位于服务器。 –