簡體   English   中英

ASP.NET/C#連接到Oracle DB

[英]ASP.NET/C# connect to Oracle DB

我需要使用ASP.NET網站訪問Oracle服務器上的視圖。 如果我通過Visual Studio調試網站(在VS2012中按F5),則可以正常工作,但是當我轉到本地IIS(LocalHost /)上托管的版本時,出現此錯誤:

Oracle.DataAccess.Client.OracleException: ORA-12154: TNS:could not resolve the connect identifier specified

我發現的許多信息都與不推薦使用的System.Data.OracleClient有關,並且我正在使用Oracle.DataAccess.dll文件版本4.112.3.0,程序集版本2.112.3.0。

我基於存在類似問題的其他一些人,將正在運行的AppPool設置為Enable 32-Bit Application=True ,我認為其他所有內容都是默認設置。

我嘗試使用gacutil來確保它已安裝在gac中。

我還制作了一個小型的winForms應用程序,該應用程序可以工作並且可以訪問數據。

我嘗試了幾個連接字符串:

這個作品:

"Data Source=SOURCE;Persist Security Info=True;Password=****;User Id=****;"

這不起作用,我找不到有效的SERVICE_NAME

"user id=****;password=****;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=****)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=****)));"

我總是收到此錯誤:

Oracle.DataAccess.Client.OracleException: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

我尋找過的地方SERVICE_NAME

我檢查了我可以使用第一個連接字符串建立的連接,而SERVICE_NAME是空白還是sys$users具體取決於運行的查詢。

我找到了三個名為tnsnames.ora文件; 一個完全空白,其他兩個中的SERVICE_NAMEWorker<database service name>

注意:我無權訪問服務器,只有該視圖的憑據。

我發現帶有此名稱的SERVICE_NAMEselect sys_context('userenv','db_name') from dual; 並使用了問題中的第二個連接字符串:

"user id=****;password=****;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=****)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=****)));"

感謝您的所有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM