转自:http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/260286.html

如果在C#中使用TransactionScope类(分布式事务),则须注意如下事项:
1、在项目中引用using System.Transactions命名空间(先要在添加net组件的引用);

2、具体示例如下:

        /**//// <summary>
        /// 发送消息
         /// </summary>
        /// <param name="sendUserId"></param>
        /// <param name="toUser">格式7FFA3AF2-E74B-4174-8403-5010C53E49A7|userName,7FFA3AF2-E74B-4174-8403-5010C53E49A7|userName</param>
        /// <param name="content"></param>
        /// <param name="sendedStatus">表示已送</param>
        /// <returns></returns>
        public static int sendMessage(string sendUserId, string toUser, string content, string sendedStatus)
        {           
            int receiveCount = 0;
            TransactionOptions transactionOption = new TransactionOptions();

            //设置事务隔离级别
            transactionOption.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;

            // 设置事务超时时间为60秒
            transactionOption.Timeout = new TimeSpan(0, 0, 60);

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, transactionOption))
            {
                try
                {
                    //在这里实现事务性工作
     //发送消息
                    insertMessage(sendUserId, toUser, content, sendedStatus);

     //在接收信息表中插入记录
                    receiveCount += insertReceiveMessage(userids[0], sendUserId, content, "0");
                   
                    // 没有错误,提交事务
                    scope.Complete();
                }
                catch (Exception ex) {
                    throw new Exception("发送信息异常,原因:"+ex.Message);
                }finally{
                    //释放资源
                    scope.Dispose();
                  }                               
            }
            return receiveCount;
        }

3、对MSDTC组件设置:
 步骤:
  在控制面板--->管理工具--->服务 中,开启Distributed Transaction Coordinator 服务。
 a.控制面板->管理工具->组件服务->计算机->我的电脑->右键->属性
 b.选择MSDTC页, 确认"使用本地协调器"
 c.点击下方"安全配置"按钮
 d.勾选: "允许网络DTC访问","允许远程客户端","允许入站","允许出站","不要求进行身份验证".
 e.对于数据库服务器端, 可选择"要求对呼叫方验证"
 f.勾选:"启用事务Internet协议(TIP)事务"。
 g.在双方防火墙中增加MSDTC.exe例外
   可用命令行: netsh firewall set allowedprogram %windir%\system32\msdtc.exe MSDTC enable

4、重启IIS服务器。

转载于:https://www.cnblogs.com/chenbg2001/archive/2010/04/22/1717881.html

C#语言中TransactionScope类的使用相关推荐

  1. C++编程语言中stringstream类介绍

    本文主要介绍 C++ 编程语言中 stringstream 类的相关知识,同时通过示例代码介绍 stringstream 类的使用方法. 1 概述 <sstream> 定义了三个类:ist ...

  2. java可以使用c语言中的输入,c语言中的scanf在java中应该怎么表达,Scanner类。

    1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...

  3. c语言中的scanf在java中应该怎么表达,Scanner类。

    1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...

  4. java去哪导包_在Java语言中,哪一个包中的类是自动导入的?( )java.applet

    包括,语言中标的详细评审核心是评,标书性审进行查是对实质. 对一的某栋厂行评企业估房进,包中在资估中产评,属于. 完成修正总概算,类动导现工目的会发和数化可能建设.类动导结规模构.程项类型量有设备所变 ...

  5. 在c语言静态存储类别的,在 C语言中,表示静态存储类别的关键字是 ( ) (1.0分)

    在 C语言中,表示静态存储类别的关键字是 ( ) (1.0分) 在 C语言中,表示静态存储类别的关键字是 ( ) (1.0分) 拜金主义.享乐主义.极端个人主义等错误人生观,其出发点和落脚点都是一己之 ...

  6. C 语言中 void* 详解及应用介绍

    void 在英文中作为名词的解释为 "空虚.空间.空隙",而在 C 语言中,void 被翻译为"无类型",相应的void * 为"无类型指针" ...

  7. java 英文字符 字节_3、在JAVA语言中,每个英文字符占 个字节,每个中文汉字占( )个字节。...

    [判断题]中心原子中的几个原子轨道杂化时,必形成数目相同的杂化轨道. [单选题]集合 用区间表示正确的是 ( ) [单选题]15.Java语言的类间的继承关系是 [单选题]8.编译Java Appli ...

  8. c语言中 char怎样用,C语言中char*和char[]用法区别分析

    C语言中char*和char[]用法区别分析 本文实例分析了C语言中char* 和 char []的区别.分享给大家供大家参考之用.具体分析如下: 一般来说,很多人会觉得这两个定义效果一样,其实差别很 ...

  9. linux strcpy 用法,由Linux中管道的buffer,浅谈C语言中char类型字符串拷贝使用strcpy()和=赋值符号的区别...

    今天在写父子进程用两个单向管道通信时,出现了错误: Segmentation fault (core dumped) 打开core文件发现: 附上源码: 1 #include 2 #include 3 ...

最新文章

  1. java运行环境jdk的安装和环境变量的配置教程
  2. 滴滴成立AI Labs 加大人工智能领域投入
  3. SpringBoot------异步任务的使用
  4. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第5章-基于骨干网络的多智能体系统群集运动与避障控制
  5. 【Java】5.2 方法详解
  6. python鸢尾花数据集聚类_R语言鸢尾花iris数据集的层次聚类分析
  7. 81. 搜索旋转排序数组 II
  8. java 加密服务器_Javascript端加密java服务端解密
  9. 网站服务器需要定期重启吗,定期服务器重启的好处和障碍
  10. 【linux】学习2
  11. Linux c编译库路径,【一点一点学Linux C】交叉编译时候如何配置连接库的搜索路径...
  12. 笨方法python_笨方法学习Python(11-20)
  13. 做游戏,学编程(C语言) 18 瑞克快跑
  14. [转载] python学习笔记——@property装饰器
  15. 计算机毕业设计Java物料生产管理系统(源码+系统+mysql数据库+Lw文档)
  16. 房贷利率有没有套路?用Python版解读!
  17. 强化学习#code3
  18. 计算机专业自主招生有哪些学校,自主招生的学校类型有哪些
  19. 遥感(4):卫星遥感图像处理
  20. 不平衡电网电压下虚拟同步发电机VSG控制策略-实现不平衡电压下控制三相电流平衡

热门文章

  1. Vue学习记录04--单项数据绑定双向数据绑定
  2. 百度飞浆-语音转文字、语音识别使用过程的问题
  3. 开会不用手写记录?来看看华为手机自带的这个功能
  4. 题解报告——拉拉队排练
  5. 干货!Lazada使用支付宝收款常见问题解答
  6. Python django 宠物领养商城-源码下载
  7. 计算机操作系统发展史论文,探讨计算机操作系统的发展论文(2)
  8. IPA模特委员会十月人气评选 石庭语荣获全球人气季军
  9. win7运行java配色方案_Win7系统提示:“配色方案已更改为Windows 7 Basic”解决方案...
  10. 电信光猫配置无线路由器