同事在一台原本只有ODP.NET 9207的測試台安裝ODP.NET 11g,並將該測試台上ASP.NET網站的ODP.NET版本升級到ODP.NET 11g。

接獲報案,原本週二換版後測試OK,今天再測試時,傳回以下錯誤:
Exception Details: Oracle.DataAccess.Client.OracleException: The provider is not compatible with the version of Oracle client

[OracleException (0x80004005): The provider is not compatible with the version of Oracle client]
   Oracle.DataAccess.Client.OracleInit.Initialize() +505
   Oracle.DataAccess.Client.OracleConnection..cctor() +841

比對了ASP.NET bin下的DLL版本,程式為前天所換上的版本,原本已測試OK,過了個中秋節,今天卻忽然失敗頗令人費解。但我看到錯誤訊息中有個關鍵字:

0x80004005 0x80004005 0x80004005 0x80004005 ...

有經驗的老鳥都知道這是存取權限被拒的代碼,加上之前有幾次Oracle Client安裝目錄權限設定導致問題的經驗,故我重新套用Authenticated User權限給整個\oracle\product\11.2.0\client_1目錄,再配合IISRESET後,錯誤消失!

[2011-03-29補充] 再遇相同錯誤,但加完權限少了IISRESET步驟,更動未生效,多花了五分鐘才想到少一動,特立此碑紀念。


Comments

Be the first to post a comment

Post a comment