`
t225com
  • 浏览: 662080 次
文章分类
社区版块
存档分类
最新评论

WCF 学习总结8 –- WCF 事务处理

 
阅读更多

WCF在预定义绑定中实现了标准的WSAtomicTranscation(WS-AT)协议和Microsoft专有的OleTx协议,这些协议可以用来在消息中加入事务状态的信息。我们可以指定将一个操作的代码放在事务范围里执行。
我们需要在Binding的配置节里指定,transcationFlow=true

注意:任何被指定的必须在一个事务范围里执行的操作(OperationContract)都不能标记为单向方法(IsOneWay=true),因为在操作结束时,有关事务状态的信息必须传回给调用者。开发者也可以指出,当没有异常发生时,WCF应该自动为操作提交事务。

如果需要在服务实现的操作需要自己来提交事务,可以使用WCF的静态System.ServiceModel.OperationContext对象:

而客户端开发者可以使用System.Transcation命名空间提供的语法将服务的操作放进一个事务范围内。
using(TranscationScope ts = new TranscationScope(TranscationScopeOption.RequireNew))
{
client.DoSomething();
...
ts.Complete();
}
client.Close();
如果服务的操作支持事务,而且也配置了支持传送有关事务状态的绑定,那么客户端的事务直到服务操作决定提交时才会提交(TranscationScope的Complete被调用)。相反地,服务在客户端事务范围里对事务资源所做的任何操作都将被回滚。(客户端处理的过程中出现任何异常)


本系列链接:

WCF 学习总结1 -- 简单实例

WCF 学习总结2 -- 配置WCF

WCF 学习总结3 -- 实例模式

WCF 学习总结4 -- 用Duplex实现消息广播

WCF 学习总结5 -- 消息拦截实现用户名验证

WCF 学习总结6 -- WCF参数与返回值

WCF 学习总结7 -- 流模式实现文件上传

WCF 学习总结8 –- WCF 事务处理

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics