2010-02-03 58 views
0

我運行一個ASP.NET MVC應用程序託管與Mosso,有告訴我,他們不能啓用DTC,因爲他們在中等信任運行的一切。TransactionScope在一箇中等信任

所以當執行引用代碼時:TransactionScope我得到以下錯誤。事務管理器已經禁用了對遠程/網絡事務的支持。 (來自HRESULT的異常:0x8004D024)

有沒有辦法解決這個問題?

回答

0

您是否使用多個數據上下文?在TransactionScope中使用單個數據上下文不應強制將事務提升爲分佈式事務。如果您使用多個數據上下文,請確保它們共享相同的連接。我會認爲,如果他們共享一個連接,它會拿起與範圍相關的事務並簡單地使用它。如果沒有,您可能需要在上下文中顯式設置事務。

using (var ts = new TransactionScope()) 
{ 
     using (var dcOuter = new FooDataContext()) 
     { 
      using (var dcInner = new BarDataContext(foo.Connection)) 
      { 
       .... 
      } 
     } 
     ts.Complete(); 
} 
+0

我不使用多個dataContexts,只是試圖運行下面的代碼: 使用(TransactionScope的範圍=新的TransactionScope(TransactionScopeOption.RequiresNew,TransactionTimeOut)){ 嘗試 { // 肉交易... } catch(Exception ex) { throw ex; } Scope.Complete(); } – 2010-02-03 21:57:47

+0

我認爲它必須做的:http://stackoverflow.com/questions/794364/how-do-i-use-transactionscope-in​​-c 由於mosso是中等信任我不認爲他們將啓用'網絡DTC訪問'。 還有其他想法嗎? – 2010-02-03 22:00:42