2011-09-09 21 views
2

我收到以下錯誤分佈式事務管理器(MSDTC)C#中使用塊的上下文,另一個使用模塊背景

網絡訪問內一直 禁用。請使用組件服務管理 工具爲MSDTC配置安全 配置中的DTC以啓用網絡訪問。

當我嘗試做以下

using (DataOneContext context1 = new DataOneContext()) 
{ 
    code... 

    using (DataTwoContext context2 = new DataTwoContext()) 
    { 
      more code... 
    } 
} 

當我把它們分開,代碼工作。但爲了讓事情變得簡單,一個人在另一個人身上會更容易。可能嗎?

我想避免啓用MSDTC。

DataOneContext和DataTwoContext是DBML文件中的表格(抱歉,我不知道技術術語)。

每個上下文都連接到不同的服務器。

+0

什麼是DataOneContext或DataTwoContext。我們不知道。 – Hogan

+0

@Hogan - 這是DBML中的表格。 – Kukoy

+0

DBML將LINQ to SQL暗示爲您的ORM,是否正確?他們實際上是兩個獨立的DBML文件還是他們在同一個文件中有兩個獨立的表? –

回答

2

我想你可以通過共享連接來做到這一點(假設同一臺服務器)。當事務使用不同的連接時,事務會自動升級到分佈式事務。

using (DataOneContext context1 = new DataOneContext()) 
{ 
    code... 

    using (DataTwoContext context2 = new DataTwoContext(context1.Connection)) 
    { 
     more code.... 
    } 
} 
+0

他們在不同的服務器 – Kukoy

+0

@Fritos - 那麼你如何避免做分佈式事務?按照錯誤消息的建議並設置/啓用MSDTC以在兩臺服務器和客戶端之間工作。 – tvanfosson

+0

我只是想知道是否有另一種方式... – Kukoy

相關問題