从IIS连接到Oracle数据库.错误:基础提供程序在打开时失败

本文关键字:程序 失败 连接 IIS Oracle 数据库 错误 | 更新日期: 2023-09-27 18:10:16

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

从我的开发环境,我能够连接到Oracle DB没有问题。如果我只是在Visual Studio中运行WCF服务并运行客户端应用程序。我还可以从Visual Studio中连接到Oracle实例并使用该服务。

我不知道去哪里找。最后,我关闭了开发服务器上的防火墙,看看是否有任何问题。我也能够Ping Oracle服务器与成功。

来自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 Managed Drivers时通过Nuget添加到应用程序中的连接字符串,它在应用程序中是相同的字符串。

更新:这里是我尝试过的事情的列表:

我尝试过的事情:

  1. 在Windows Server上安装Oracle即时客户端
  2. 在环境变量中创建TNS_ADMIN变量
  3. 设置Oracle即时客户端路径
  4. 添加(安装)ODBC驱动程序到即时客户端文件夹
  5. 创建并配置tnsnames.ora

仍然得到相同的错误:

从IIS连接到Oracle数据库.错误:基础提供程序在打开时失败

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

在可能的情况下,应该在每个系统中使用相同的oracle客户端版本。