我正在使用MSMQ端點。 我在我的服務上設置了以下屬性。禁用WCF(MSMQ)服務中的DTC
[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
public void MyMethod(MyParam param) { ... }
在接口上我有
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single, ReleaseServiceInstanceOnTransactionComplete = true)]
我有做的更新到SQL Server數據庫和MSDTC,總是使用與交易促進的方法。
我該如何抑制這一點。如何連接到MSMQ事務處理完全SEPARATE事務中的sql server。我只想要一個sql事務,而不是DTC事務。有沒有辦法確保sql事務不包含在MSMQ事務的範圍內。
我希望我可以做到這一點,而不會完全移除MSMQ上的交易,這正是我正在考慮的。
問候
克雷格
DTC事務將MSMQ和SQL更新保持在一起。如果將事務分開,則不能保證MSMQ消息將用於更新SQL。您仍然可以獲得可靠的MSMQ消息,但從消息中提取的數據不受保護。如果在讀取消息和寫入數據庫之間出現錯誤,您將無法恢復。 –