2014-09-19 788 views
4

我們採用了最新的Oracle.ManagedDataAccess.dll從的NuGet與實體框架5.無法加載文件或程序集「Oracle.ManagedDataAccessDTC.DLL」或一個依賴

一個ASP.Net應用4.5.2的一個文件版本:4.121.1.0

產品版本:4.121.1.20131211

當部署到生產環境(在Windows Server 2008 R2 x64)的一切工作正常,直到我們需要分佈式事務。

Oracle文檔聲明我們需要提供Oracle.ManagedDataAccessDTC.dll(針對特定平臺x64的同一版本),以便使分佈式事務正常工作。

無法加載文件或程序集「Oracle.ManagedDataAccessDTC.DLL」或其某個依賴項。指定的模塊無法找到。

描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。

異常詳細信息:System.IO.FileNotFoundException:無法加載文件或程序集「Oracle.ManagedDataAccessDTC.DLL」或其某個依賴項。指定的模塊無法找到。

堆棧跟蹤:

[FileNotFoundException異常:未能加載文件或程序集 'Oracle.ManagedDataAccessDTC,版本= 4.121.1.0文化=中性公鑰= 89b483f429c47342' 或它的一個依賴。 ]

+0

你能有點簡短,以便找到您的實際問題和一些代碼工作將提供您的工作的清晰畫面! @weedo – 2014-09-19 12:19:48

+0

通過將Oracle.ManagedDataAccessDTC.dll移動到GAC_32來解決未安裝Oracle的系統上的問題。確保您使用的是正確版本的Oracle.ManagedDataAccessDTC.dll。 – 2014-09-19 12:35:57

+0

但是還是我有同樣的問題,當我嘗試做Windows Server 2008的 – 2014-09-19 12:40:56

回答

0

我的解決方案竟然是停止使用的TransactionScope,並轉移到System.Transactions的參考,那麼問題就走開了。

我可以逃脫這個TransactionScope沒有給我任何進一步的性能改進。

+0

那麼你如何處理交易? – steven2308 2016-09-23 19:18:55

+0

通過使用實體框架附帶的默認事務 – imekon 2016-09-26 15:38:32

+0

如果您需要一次更改多個實體,該怎麼辦?當然是交易。 – steven2308 2016-09-28 16:53:38

-1

我有幾個月的問題,當應用程序使用事務時,我們的產品在某些計算機上會出現問題(比如每10箇中就有一個出現問題)。

我試過約翰的答案,問題停止了,但後來我發現那些在任何安裝中都無法工作的交易。

最後我到this,在那裏你可以看到Oracle.ManagedDataAccessDTC不會在.NET Framework版本4.5.2或更高的版本。我們使用4.5,所以我將這個框架升級到了4.5.2,並且現在它們完美地工作了。

綜上所述,將.Net版本升級到4.5.2或更高版本應該可以解決問題。

+0

這也發生在4.6.1上。降級不是一個好的解決方案,因爲4.6包含TLS 1.2安全性改進。 – justdan23 2017-11-14 19:49:08

相關問題