一、TransactionScope是.Net Framework 2.0之后,新增了一个名称空间。它的用途是为数据库访问提供了一个“轻量级”[区别于:SqlTransaction]的事务。使用之前必须添加对 System.Transactions.dll 的引用。

二、代码实例

//设置事务隔离级别
transactionOption.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
// 设置事务超时时间为60秒
transactionOption.Timeout = new TimeSpan(0, 0, 60);

using (TransactionScope tran = new TransactionScope())
{

  try
                { tran.Complete(); }
                catch
                {}

}

三、在TransactionScope中默认的事务级别是Serializable,即在事务过程中,完全性锁表。别的进程不能查询,修改,新增,删除。这样会导致效率大大降低,虽然数据完整性很高。通常我们不需要那么

所有的事务级别如下:

成员名称 说明  

Chaos                      无法改写隔离级别更高的事务中的挂起的更改。   

ReadCommitted        不可以在事务期间读取可变数据,但是可以修改它。   

ReadUncommitted     可以在事务期间读取和修改可变数据。   

RepeatableRead        可以在事务期间读取可变数据,但是不可以修改。可以在事务期间添加新数据。   

Serializable               可以在事务期间读取可变数据,但是不可以修改,也不可以添加任何新数据。   

Snapshot                  可以读取可变数据。在事务修改数据之前,它验证在它最初读取数据之后另一个事务是否更改过这些数据。如果数据已被更新,则会引发错误。这样使事务可获取先前提交的数据值。

四、在C#中使用TransactionScope类(分布式事务),则须注意如下事项

1、在项目中引用using System.Transactions命名空间(先要在添加net组件的引用);

2、对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

3、重启IIS服务器。

五、使用分布式事务注意如下几点

1:确保参与事务的machine开启了分布式事务支持;

2:如果machine开启了防火墙,需要设置msdtc进程为例外;

3:参与事务的machine不能跨域(如果跨域,目前微软还没有确切的解决方案);

TransactionScope 事务的更多相关文章

  1. c#传统SqlTransaction事务和TransactionScope事务

    事务有很多种,看了一些关于事务的问题,这里做下笔记····· 事务时单个的工作单位.如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中永久的组成部分.若果事务遇到错误,则必须取消或 ...

  2. C# TransactionScope 事务类

    微软自带的TransactionScope(.Net Framework 2之后)是个好东东,提供的功能也很强大. 首先说说TransactionScope是什么,并能为我们做什么事情.其实看Tran ...

  3. EntityFramework与TransactionScope事务和并发控制

    最近在园子里看到一篇关于TransactionScope的文章,发现事务和并发控制是新接触Entity Framework和Transaction Scope的园友们不易理解的问题,遂组织此文跟大家共 ...

  4. TransactionScope 事务使用说明

    TransactionScope是.Net Framework 2.0滞后,新增了一个名称空间.它的用途是为数据库访问提供了一个“轻量级”[区别于:SqlTransaction]的事物.使用之前必须添 ...

  5. 导入Excel的时候使用TransactionScope事务控制来进行数据

    最近,项目需要将Excel里面的数据导入到数据库里面,但是由于Excel里面的数据的合法性和数据格式的不确定性.所以不可能每读出一条数据,就保存到数据库中. 这就使用到了TransactionScop ...

  6. TransactionScope事务对多个数据库的操作

    .Net 2.0引入了轻量级事务管理器(Lighweight Transaction Manager),即System.Transactions.TransactionManager. 轻量级事务管理 ...

  7. TransactionScope事务

    一个错误的理解就是Complete()方法是提交事务的,这是错误的,事实上,它的作用的表示本事务完成,它一般放在try{}的结尾处,不用判断前台操作是否成功,如果不成功,它会自己回滚. #region ...

  8. .Net TransactionScope事务

    使用TransactionScope类 正如名称所暗示,TransactionScope类用于限定事务代码块,其具有一些明显优点,例如范围与应用程序对象模型无关,同时提供了一个简单直观的编程模型等等. ...

  9. TransactionScope事务使用

    using (System.Transactions.TransactionScope T_Scope = new System.Transactions.TransactionScope()) { ...

  10. EF 多线程TransactionScope事务异常"事务EFTransaction类定义:与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。"

    解决方案代码一:使用lock锁定 //对于锁推荐使用静态私有静态变量 private readonly static object _MyLock = new object(); /// <su ...

随机推荐

  1. 2019 Multi-University Training Contest 5——permutation 2

    传送门 题意: t组输入,之后每组例子有三个数n.x.y代表在一个以x为开头y为结尾的长为n的数组里面,开头和结尾数据已经固定,让你从1--n中找其他数据填入数组中 (每个数据不能重复使用),使它满足 ...

  2. 牛客53680 「金」点石成金 (dfs)

    题意:给你\(n\)组数,每组4个正整数\(a,b,c,d\),每组数有两个选择: ​ 1.增加\(a\)个财富,消耗\(b\)点魔法. ​ 2.回复\(c\)点魔法,减少\(a\)个财富. 求最后财 ...

  3. 在 Spring Boot 2 中致敬 JSP

    新冠病毒

  4. 洛谷 P4143 采集矿石 后缀数组

    题目背景 ZRQ 成功从坍塌的洞穴中逃了出来.终于,他看到了要研究的矿石.他想挑一些带回去完成任务. 题目来源:Zhang_RQ哦对了 \(ZRQ\) 就他,嗯 题目描述 ZRQ 发现这里有 \(N\ ...

  5. 关于vmwaretools

    今天安装Ubuntu16.04-i386,vmware15.5,使用的快速安装,然后安装vmwaretools出现问题:无法复制粘贴,顶部管理"重新安装vmware-tools"选 ...

  6. codeforce 849A

    A. Odds and Ends time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  7. C++动态申请一维数组和二维数组

    在平时的编程过程中,我们经常会用到数组来存放数据,我们可以直接申请足够大空间的数组来保证数组访问不会越界,但是即便这样,我们依然不能保证空间分配的足够,而且非常的浪费空间.有时候我们需要根据上面得到的 ...

  8. LaTex公式在线转图片

    Reference https://latex.codecogs.com/gif.latex?THE_FORMULAR 注: 请不要包含空格 或者 将整段url放到浏览器里, 会产生空格等字符的替换, ...

  9. CDN 工作原理剖析

    CDN 工作原理剖析 CDN / Content Delivery Network / 内容分发网络 https://www.cloudflare.com/zh-cn/learning/cdn/wha ...

  10. iPadOS 14 memoji 无法使用 bug

    iPadOS 14 memoji 无法使用 bug iPadOS 14 bug refs 如何在 iPhone 和 iPad Pro 上使用动话表情 https://support.apple.com ...