WCF控制事务具体操作代码解读

WCF开发工具中对于事务的相关处理是一个比较重要的操作技术,我们在学习的过程中需要对此加强注意力。把事务放到客户端控制,实际上WCF控制事务还是在服务器端的,只不过操作权给了客户端而已。思路和WebService实现是一样的,即用WCF的状态化记住控制事务所需的对象,然后给客户端提供接口来操作这些对象。

在钦南等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、网站建设 网站设计制作按需设计网站,公司网站建设,企业网站建设,成都品牌网站建设,成都全网营销,成都外贸网站建设,钦南网站建设费用合理。

闲话少说,WCF控制事务代码如下:

服务器端代码:

 
 
 
  1. [ServiceContract(SessionModeSessionMode=SessionMode.Required)]  
  2. public interface IMyService{  
  3. [OperationContract(IsTerminating=true)]  
  4. void ReleaseSession();  
  5. [OperationContract]  
  6. void BeginTransaction();  
  7. [OperationContract]  
  8. void CommitTransaction();  
  9. [OperationContract]  
  10. void RollbackTransaction();  
  11. [OperationContract]  
  12. int ExecuteNonQuery(string strCmdText);}  
  13. [ServiceBehavior(InstanceContextModeInstanceContextMode=
    InstanceContextMode.PerSession)]  
  14. public class MyService : IMyService{private string strConnString =
     "server=namihei2\\KHOS;database=AEGIS_TEST;  
  15. uid=sa;pwd=Password01!";  
  16. private SqlConnection mySqlConnection;  
  17. private SqlTransaction mySqlTransaction;  
  18. public void ReleaseSession(){  
  19. if (mySqlConnection.State == ConnectionState.Open)
    {mySqlConnection.Close();  
  20. }}  
  21. public void BeginTransaction(){  
  22. mySqlConnection = new SqlConnection(strConnString);  
  23. mySqlConnection.Open();  
  24. mySqlTransaction = mySqlConnection.BeginTransaction();  
  25. }  
  26. public void CommitTransaction(){  
  27. mySqlTransaction.Commit();  
  28. }  
  29. public void RollbackTransaction(){mySqlTransaction.Rollback();  
  30. }  
  31. public int ExecuteNonQuery(string strCmdText)  
  32. {  
  33. try{SqlCommand objSqlCommand = new SqlCommand(strCmdText);  
  34. objSqlCommand.Connection = mySqlConnection;  
  35. objSqlCommand.Transaction = mySqlTransaction;  
  36. return objSqlCommand.ExecuteNonQuery();  
  37. }  
  38. catch (Exception ex){  
  39. throw new FaultException(ex.Message);  
  40. }}}  

客户端代码:

 
 
 
  1. static void Main(string[] args){  
  2. Console.WriteLine("Session Transaction Begin");  
  3. SessionTrans.MyServiceClient serviceProxy = 
    new ConsoleTest.SessionTrans.MyServiceClient();  
  4. try{serviceProxy.BeginTransaction();  
  5. serviceProxy.ExecuteNonQuery("update ATMAccount set Amount = 1000");  
  6. serviceProxy.ExecuteNonQuery("insert into ATMLog
    (AccountNumber,OperationType)  
  7. values ('888', 'good')");  
  8. //serviceProxy.ExecuteNonQuery("insert into ATMLog
    (AccountNumber,OperationType)   
  9. values ('888', 'goodgoodgoodgoodgoodgoodgoodgoodgoodgoodgoodgood
    goodgoodgoodgoodgood')");  
  10. serviceProxy.CommitTransaction();  
  11. }  
  12. catch (Exception ex){Console.WriteLine(ex.Message);  
  13. serviceProxy.RollbackTransaction();  
  14. }  
  15. finally{serviceProxy.ReleaseSession();  
  16. serviceProxy.Close();  
  17. }  
  18. Console.WriteLine("Session Transaction End");  
  19. Console.Read();  

以上就是对WCF控制事务的相关介绍。

【编辑推荐】

  1. WCF框架基本解析方式介绍
  2. WCF端点配置正确编程方式解读
  3. WCF服务合同基本内容概述
  4. WCF行为控制代码示例应用解读
  5. WCF宿主模式主要概念总结

文章名称:WCF控制事务具体操作代码解读
文章分享:http://www.gawzjz.com/qtweb/news47/173547.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联