[英]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_NAME
是Worker
和<database service name>
。
注意:我無權訪問服務器,只有該視圖的憑據。
我發現帶有此名稱的SERVICE_NAME
: select 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.