2014-09-19 70 views
1

我有一個WCF服務ServiceA。在一個事務中調用兩個WCF服務。兩者都與同一個數據庫交談。 MSDTC是唯一的選擇

這反過來又必須調用兩個單獨的WCF服務ServiceB和ServiceC來完成兩個不同的事情,但是如果對ServiceC的調用失敗,我想回滾ServiceB所做的。

我沒有實現它使用TransactionScope(我正在使用EF 6.0),但沒有啓用MSDTC它不起作用。有沒有解決方法?我真的不想通過MSDTC路線,因爲我擔心會導致很多性能問題,並且網絡管理員強烈反對。

+0

嗯 - 你需要某種服務,但你不想使用提供它的標準組件。寫你自己的? – 2014-09-19 13:24:31

+0

你用什麼數據庫?版? – codeworx 2014-09-19 17:49:42

回答

1

你想要的是一個分佈式事務,因爲你的事務包含跨界參與者。就我所知,Windows平臺上分佈式事務的唯一解決方案是MSDTC,但是沒有辦法解決這個問題。

但是,我會建議您嘗試尋求更爲一致的解決方案,而不是嚴格的事務性解決方案,因爲您的解決方案很可能會更好地執行和擴展。當然,您將不得不面對數據不一致的特殊情況,這會導致更復雜的代碼。

從我的經驗來看,這將是值得的,但它取決於你。

相關問題