2013-12-18 33 views
0

我有一個應用程序開發框架2.0,NHibernate和Oracle。在Win Server 2003/2008和Win XP中一切正常,但我將SO Win XP更改爲Win 7,並且問題開始了。我所有的交易都停止了,只有EnterpriseServicesInteropOption.Full的操作。EnterpriseServicesInteropOption,NHibernate和Win7的問題

我沒有任何ideia在Win 7中需要做什麼配置,因爲Win XP工作。

的代碼,一個拉伸下面時節省德對象我接收OracleException:

Oracle.DataAccess.Client.OracleException無法在分佈式事務

TransactionOptions options = new TransactionOptions(); 
options.Timeout = new TimeSpan(0, 5, 0); 
options.IsolationLevel = IsolationLevel.ReadCommitted; 
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options, EnterpriseServicesInteropOption.Full)) 
{      
     // Problems here 
    classDao.Save(class); 

    scope.Complete(); 
} 

回答

0

TransactionScope爭取將打開一個分佈式事務如果需要的話。

分佈式事務需要msdtc在服務器上運行!

如果通過執行以下操作(taken from here)運行時,您可以檢查

您需要檢查,如果MSDTC服務正在運行(默認情況下它是 禁用)。打開命令提示符(admin)並運行:net start msdtc。 接下來你需要配置msdtc來允許網絡交易,開始 |運行 - > comexp.msc然後向下挖掘,直到獲得分佈式事務處理協調器 ,右鍵單擊本地DTC並選擇 屬性。轉到安全選項卡並啓用網絡交易和事務處理。

+0

Micha,謝謝你的回答。我做了所有事情,但問題依然存在。是否有可能成爲別的東西? – user3115461

+0

idk,可能是100多個不同的問題;) 也許只是谷歌的錯誤,有很多貼子,也許這一個可能會很有趣,雖然它是比較舊的https://forums.oracle.com/thread/1038580 – MichaC

+0

Google上的大部分答案都是關於本地DTC的。我已經安裝了兩個版本的oracle客戶端,我會嘗試發送的鏈接中的建議。感謝關注=) – user3115461