2012-04-02 63 views
0

我們遇到的問題是,在不應該交易的情況下,它們被提升爲分佈式交易。我們正在使用實體框架4.1和TransactionScope的一個WCF服務:將交易提升爲在實體框架中分佈

[OperationBehavior(TransactionScopeRequired = true)] 
    [TransactionFlow(TransactionFlowOption.Allowed)] 
    public void SetCapLength(Guid orderId, int capLength){} 

一個ObjectContext的實例爲每個服務請求創建只有一個整個請求中被使用。

我們正在使用SQL Server 2008 R2。

對分佈式事務的推廣看起來非常隨意。

任何人都知道什麼會導致E.F.促進我們的交易?

回答

0

您正在使用TransactionFlowOption - 因此,如果您幸運並且所有配置均正確,則客戶端事務處理流程到您的服務=分佈式事務處理。服務端的所有本地事務都將加入分佈式事務。

+0

啊,[TransactionFlow(TransactionFlowOption.Allowed)]可能有點無意。我們有一個不創建任何交易的Silverlight客戶端。我可以刪除它,但我不確定這是問題所在? – Poppert 2012-04-02 09:59:20

+0

沒有Silverlight的情況下,它不會是一個問題。它是否隨時或隨機發生在特定操作上?你有沒有訪問任何其他交易資源? – 2012-04-02 10:25:22

+0

這是非常隨機的。我們還沒有找到任何模式,不能真正重現它。有時它只是發生。不,我們不訪問其他交易資源。有時候服務會調用另一個服務,但是這些服務也沒有配置爲流動事務。 – Poppert 2012-04-02 14:01:50