C#语言中TransactionScope类的使用
转自:http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/260286.html
如果在C#中使用TransactionScope类(分布式事务),则须注意如下事项:
1、在项目中引用using System.Transactions命名空间(先要在添加net组件的引用);
2、具体示例如下:
/// 发送消息
/// </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类的使用相关推荐
- C++编程语言中stringstream类介绍
本文主要介绍 C++ 编程语言中 stringstream 类的相关知识,同时通过示例代码介绍 stringstream 类的使用方法. 1 概述 <sstream> 定义了三个类:ist ...
- java可以使用c语言中的输入,c语言中的scanf在java中应该怎么表达,Scanner类。
1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...
- c语言中的scanf在java中应该怎么表达,Scanner类。
1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...
- java去哪导包_在Java语言中,哪一个包中的类是自动导入的?( )java.applet
包括,语言中标的详细评审核心是评,标书性审进行查是对实质. 对一的某栋厂行评企业估房进,包中在资估中产评,属于. 完成修正总概算,类动导现工目的会发和数化可能建设.类动导结规模构.程项类型量有设备所变 ...
- 在c语言静态存储类别的,在 C语言中,表示静态存储类别的关键字是 ( ) (1.0分)
在 C语言中,表示静态存储类别的关键字是 ( ) (1.0分) 在 C语言中,表示静态存储类别的关键字是 ( ) (1.0分) 拜金主义.享乐主义.极端个人主义等错误人生观,其出发点和落脚点都是一己之 ...
- C 语言中 void* 详解及应用介绍
void 在英文中作为名词的解释为 "空虚.空间.空隙",而在 C 语言中,void 被翻译为"无类型",相应的void * 为"无类型指针" ...
- java 英文字符 字节_3、在JAVA语言中,每个英文字符占 个字节,每个中文汉字占( )个字节。...
[判断题]中心原子中的几个原子轨道杂化时,必形成数目相同的杂化轨道. [单选题]集合 用区间表示正确的是 ( ) [单选题]15.Java语言的类间的继承关系是 [单选题]8.编译Java Appli ...
- c语言中 char怎样用,C语言中char*和char[]用法区别分析
C语言中char*和char[]用法区别分析 本文实例分析了C语言中char* 和 char []的区别.分享给大家供大家参考之用.具体分析如下: 一般来说,很多人会觉得这两个定义效果一样,其实差别很 ...
- linux strcpy 用法,由Linux中管道的buffer,浅谈C语言中char类型字符串拷贝使用strcpy()和=赋值符号的区别...
今天在写父子进程用两个单向管道通信时,出现了错误: Segmentation fault (core dumped) 打开core文件发现: 附上源码: 1 #include 2 #include 3 ...
最新文章
- java运行环境jdk的安装和环境变量的配置教程
- 滴滴成立AI Labs 加大人工智能领域投入
- SpringBoot------异步任务的使用
- 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第5章-基于骨干网络的多智能体系统群集运动与避障控制
- 【Java】5.2 方法详解
- python鸢尾花数据集聚类_R语言鸢尾花iris数据集的层次聚类分析
- 81. 搜索旋转排序数组 II
- java 加密服务器_Javascript端加密java服务端解密
- 网站服务器需要定期重启吗,定期服务器重启的好处和障碍
- 【linux】学习2
- Linux c编译库路径,【一点一点学Linux C】交叉编译时候如何配置连接库的搜索路径...
- 笨方法python_笨方法学习Python(11-20)
- 做游戏,学编程(C语言) 18 瑞克快跑
- [转载] python学习笔记——@property装饰器
- 计算机毕业设计Java物料生产管理系统(源码+系统+mysql数据库+Lw文档)
- 房贷利率有没有套路?用Python版解读!
- 强化学习#code3
- 计算机专业自主招生有哪些学校,自主招生的学校类型有哪些
- 遥感(4):卫星遥感图像处理
- 不平衡电网电压下虚拟同步发电机VSG控制策略-实现不平衡电压下控制三相电流平衡
热门文章
- Vue学习记录04--单项数据绑定双向数据绑定
- 百度飞浆-语音转文字、语音识别使用过程的问题
- 开会不用手写记录?来看看华为手机自带的这个功能
- 题解报告——拉拉队排练
- 干货!Lazada使用支付宝收款常见问题解答
- Python django 宠物领养商城-源码下载
- 计算机操作系统发展史论文,探讨计算机操作系统的发展论文(2)
- IPA模特委员会十月人气评选 石庭语荣获全球人气季军
- win7运行java配色方案_Win7系统提示:“配色方案已更改为Windows 7 Basic”解决方案...
- 电信光猫配置无线路由器