从IIS连接到Oracle DB。错误:基础提供程序在Open上失败

时间:2015-08-28 08:55:50

标签: c# oracle wcf iis

尝试使用IIS 8.5中托管的WCF服务时出现以下错误。 The underlying provider failed on Open.我正在使用Oracle DB 11G

在我的开发环境中,我可以毫无问题地连接到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"

这是在Visual Studio中安装Oracle托管驱动程序时通过Nuget添加到应用程序的连接字符串,它与应用程序中的字符串相同。

更新:这是我尝试过的一系列事项:

我尝试过的事情:

  1. 在运行IIS的Windows Server上安装了Oracle Instant Client
  2. 在环境变量
  3. 中创建TNS_ADMIN变量
  4. 设置Oracle Instant Client的路径
  5. 将ODBC驱动程序添加(安装)到即时客户端文件夹
  6. 创建并配置tnsnames.ora
  7. 仍然得到同样的错误:

1 个答案:

答案 0 :(得分:1)

运行IIS的服务器需要安装Oracle客户端,并且测试系统中的TNSNames文件和每个其他文件都需要与您正在使用的Web服务器相匹配。

您应尽可能使用与每个系统相同的oracle客户端版本。