WCF分佈式事務對Binding有要求,不支持BasicHttpBinding,BasicHttpContextBinding,NetPeerTcpBinding
要支持分佈式事務,需要進行以下配置:
服務端設置
首先要在綁定配置中啓用transactionFlow:
<binding transactionFlow="true" />
其次要在契約接口方法上添加TransactionFlow特性:
[TransactionFlow(TransactionFlowOption.Allowed)]
然後要在契約實現方法上添加TransactionScopeRequired特性:
[OperationBehavior(TransactionScopeRequired = true)]
?
Windows設置
在所有參與事務的電腦上,配置MSDTC以啓用遠程訪問。在組件服務中配置Local DTC如下:
并配置防火墻以允許DTC通過
由於改變了Windows設置,最好重啓一下電腦
?
最後客戶端將事務放進一個TransactionScope中進行調用就可以了。
时间: 2024-11-29 04:41:34