2011-12-16 93 views
4

當我瀏覽在IIS 7.5(Windows Server 2008 R2 x64)上的Visual Studio 2008中開發的ASP.Net應用程序時,出現配置錯誤,指出Oracle.DataAccess,Version = 2.111無法找到.7.20文件。我已經安裝了包含該文件的.NET的Oracle數據提供程序。當我設置ODP.net時,它將dll文件放到c:\ app .... \ odp.net \ PublisherPolicy文件夾中。我只是爲了將這些文件複製到C:\ Windows \ Microsoft \ Framework文件夾中,但仍然遇到了同樣的錯誤。有人能幫我解決這個問題嗎?任何幫助,非常感謝儘管Oracle.DataAccess.dll存在,但無法找到

+1

您確認您安裝的版本是2.111.7.20嗎? – 2011-12-16 08:24:58

回答

11

ODP.NET安裝可能非常棘手。有很多事情可能會出錯:

  • 您可以有版本不匹配(2.111.7.20與2.112.1.0與2.112.2.0)。
  • 您可以在32位和64位之間不匹配。
  • .NET DLL可能存在,但找不到其中一個依賴關係。

嘗試首先檢查32/64位不匹配。在IIS中,您可以配置您的Web應用程序是以32位還是64位運行。要檢查它,請查看任務管理器並查看w3wp.exe進程是否具有*32標記。然後在文件資源管理器中轉到C:\Windows\Assembly。這是一個顯示GAC的特殊視圖。如果它表示行Oracle.DataAccess最後一列中的x86,則它是32位。如果它說AMD64,那麼它是64位。

在同一行上,您還可以找到確切的版本號。檢查VisualStudio中,ASP.NET項目是否使用相同的項目。

如果我沒有弄錯,Oracle.DataAccess.dll的主要依賴項是OraOps11w.dll,它應該在Oracle客戶端目錄的BIN目錄中可用。該目錄通常位於註冊表(HKLM\SOFTWARE\ORACLE\ODP.NET\<version>\DllPath)。確保你查看正確位數的註冊表(32位和64位)。

還有更多的事情可以去。但是這裏通常解決這個問題。

+0

非常,非常深刻和正確,以及有益的解釋。非常感謝。你對這個問題絕對正確。服務器本身是x64,但在任務欄中運行的任何內容都標記爲* 32。我希望我是一名主持人,能夠以100點的成績讓你高興。 – 2011-12-16 10:29:45

相關問題