内容简介:再遇到加裝 Oracle Client 其他版本後 ODP.NET 壞掉的案例,已不是第一次發生,但沒能歸納出明確規則,故留個記錄。問題主機是 Windows Server 2016,原本已經裝好 Oracle Client 11.2 及 12.1 的 32 位元版本。但因為上面有 SQL Server 需要連 Oracle Linked Server,故安裝 Oracle Client 12.1 x64 並重開機後,Oracle Linked Server 功能正確啟用。但不久後接到回報,該主機上跟 Or
再遇到加裝 Oracle Client 其他版本後 ODP.NET 壞掉的案例,已不是第一次發生,但沒能歸納出明確規則,故留個記錄。
問題主機是 Windows Server 2016,原本已經裝好 Oracle Client 11.2 及 12.1 的 32 位元版本。但因為上面有 SQL Server 需要連 Oracle Linked Server,故 需加裝 64 位元版 Oracle Provider for OLE DB 。
安裝 Oracle Client 12.1 x64 並重開機後,Oracle Linked Server 功能正確啟用。但不久後接到回報,該主機上跟 Oracle 查詢有關的網站全部壞光光!
早上還是好的,肯定剛才不知哪個渾球做了什麼把它搞壞! 嗯,真相只有一個,兇手就是 -- 我!
錯誤訊息並不一致,有趣的是連不依賴 Oracle Client 的Managed ODP.NET 也冒出 ORA-12154: TNS:could not resolve the connect identifier specified.
錯誤,Unmanaged ODP.NET 則是冒出 The provider is not compatible with the version of Oracle client
。
Managed ODP.NET 出現無法解析名稱應與 TNSNAMES.ORA 有關,檢查 TNS_ADMIN 環境變數與其所指位置,確定檔案存在無誤。(Managed ODP.NET TNSNAMES.ORA 尋找原則可參考介紹文章文末說明以及實務案例)
另我也用 ASP.NET /bin 組件載入跟你想的不一樣 文章裡 Inline ASPX 印出 typeof(Oracle.DataAccess.Client.OracleConnection).Assembly.CodeBase;
的技巧檢查網站,Unmanaged ODP.NET 版本是 11.2 32 位元版本沒錯,理論上不該發生 Oracle Client 版本不相容。
拳腳招式用盡,該放大絕了 - 祭出Process Monitor,茶包立刻現形!
如上圖所示,ODP.NET 試圖存取 oci.dll 及 OraOps11w.dll 遇上 ACCESS DENIED 吃了閉門羹,無法取得該版本所需的程式庫,是導致 The provider is not compatible with the version of Oracle client
錯誤的原因。而 Managed ODP.NET 無法解析連線主機,應該也是讀取 TNSNAMES.ORA 權限被拒造成。
對 product\xxx\client_1\ 資料夾套用 Authenticated User 讀取權限後問題排除(記得要套用覆寫每個檔案,只改資料夾有時無效,做完記得 IISRESET)。
而類似案例之前發生過:
- 【茶包射手日記】ODP.NET回報版本不相容錯誤
- 【茶包射手日記】詭異的Oracle Client 32/64版本錯誤
本次幾乎是這篇的翻版,當時我還寫了以下這段,一語成讖:
由於網站設定並未變動,先前可以執行代表原本有開權限,為什麼安裝64位元Oracle Client會變更32位元Oracle Client目錄的權限,則是個謎。但在經驗中,因為Oracle Client目錄權限出錯已不是第一次,相信也不是最後一次。
重新下結論:
- 加裝 Oracle Client 時可能會更動原先安裝 Oracle Client 目錄的權限,把原本好好的網站或程式搞壞
- 可能出現的錯誤包含但不限於:
- ORA-12154: TNS:could not resolve the connect identifier specified.
- The provider is not compatible with the version of Oracle client
- An attempt was made to load a program with an incorrect format
- 凡遇加裝 Oracle Client 害舊網站/程式壞掉,
先拆座墊先檢查權限
Summary of errors you may ecounter after installing additional Oracle client and checking SOP.
以上所述就是小编给大家介绍的《【茶包射手日記】加裝不同 Oracle Client 版本後 ODP.NET 程式異常》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Unity实例开发-太空射手
- 【茶包射手日記】憑證儲存區的選擇
- 【茶包射手日記】SQLPlus Script 檔編碼問題
- 【茶包射手日記】IIS 每天早上無法登入疑案
- 【茶包射手日記】怪異的虛擬記憶體不足錯誤
- 【茶包射手日記】組件版本導向 bindingRedirect 注意事項兩則
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web协议与实践
克里希纳穆尔蒂 (KrishnamurthyBalachander) / 范群波 / 科学出版社 / 2003-7 / 46.0
本书全面论述了传输Web内容的系统和协议,重点讲述了Web中业已成熟和稳定的技术,如TCP/IP协议及DNS技术、HITP/1.0的设计及其与TCP之间的交互;深入阐述了Web高速缓存技术和多媒体流播技术的最新技术动态;分析了Apache Web服务器和Squid代理;还探讨了通信量的分析和测量技术。书中使用了大量示例、技术发展水平报告以及案例分析来阐述Web的工作原理和各个组件之间的交互。本书是......一起来看看 《Web协议与实践》 这本书的介绍吧!