嘗試使用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文件和測試機器上的任何其他文件位於服務器。 –