ORA-12154: TNS: 無法解析指定的連線 ID
十二月 15, 2009
環境:Microsoft Windows 7 Ultimate x86, IIS7, ASP.NET 2.0
錯誤:將原本正常的 ASP.NET 2.0 程式建置到 Windows 7 的機器上,發生 ORA-12154 錯誤。
- ORA-12154: TNS: 無法解析指定的連線 ID
- ORA-12154: TNS: could not resolve the connect identifier specified
- ORA-12154: TNS: 无法处理服务名
嘗試:
- 用 TNSPING {myTNS} 正常
- 修改或移除 web.config 的
<identity impersonate="true" userName="user" password="pass"/>都沒作用。 - 參考<解決 ASP.NET 跑在 x64 機器上無法連接 Oracle DB 的問題>
將連線字串User ID=user;Password=pass;Data Source=myTSN;
改成User ID=user;Password=pass;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=???)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=???)))居然沒有錯誤!
所以,連線是正常的,只是找不到 TNS 的定義。 - 最後找到<Oracle Developer Tools ORA-12154: TNS:could not resolve service name – ASP.NET Forums>
在HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_ODACHome1加上TNS_ADMIN字串C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN就OK了!