由于工作需要,最近研究了一下WCF分布式事务方面的技术,自己做了一个基于OleTx协议的WCF事务实例,供大家参考。 一、实例背景 本实例以大家熟悉的银行转账业务为背景,在几台不同的机器上部署一套基于OleTx协议的WCF分布式服务。 ...
由于工作需要,最近研究了一下WCF分布式事务方面的技术,自己做了一个基于OleTx协议的WCF事务实例,供大家参考。
一、实例背景
本实例以大家熟悉的银行转账业务为背景,在几台不同的机器上部署一套基于OleTx协议的WCF分布式服务。
本例需要A、B、C、D四台计算机,其中A表示SqlServer服务器,B部署取款服务,C部署存款服务,D部署客户端程序(调用存款和取款服务),D同时直接A进行日志写入。一次转账操作分为三个部分:存款、取款、写日志,这三部分组成一个转账事务,要么全部成功,要么全部失败。
二、WCF服务端代码
创建一个WCF服务项目OleTxService。
1、契约
取款服务契约如下:
1 using System.Net.Security; 2 using System.ServiceModel; 3 using OleTxService.Models; 4 5 namespace OleTxService 6 { 7 /// <summary> 8 /// 取款服务接口 9 /// </summary>10 [ServiceContract(SessionMode = SessionMode.Required)]11 public interface IWithDrawService12 {13 /// <summary>14 /// 取款操作15 /// </summary>16 /// <param name="accountId">取款账号</param>17 /// <param name="amount">取款金额</param>18 [OperationContract]19 [TransactionFlow(TransactionFlowOption.Mandatory)]20 [FaultContract(typeof(MyFault), ProtectionLevel = ProtectionLevel.None)]21 void Withdraw(get='_blank'>string accountId, double amount);22 }23 }
原标题:如何创建一个简单的基于OleTx协议的WCF事务实例
关键词:wcf
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。