分布式事务TransactionOptions及设置msdtc

        public IEnumerable<string> Get()
        {
            Card c = new Card();

            t_BoxCard tt1 = context.Set<t_BoxCard>().Where(o => o.CardNo == "56326764").FirstOrDefault();

            tt1.CardStatus = 22;

            OneCardPassEntities s = new OneCardPassEntities();

            TransactionOptions transactionOption = new TransactionOptions();
            //设置事务隔离级别
            transactionOption.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            //设置事务超时时间,这里设置为8分钟
            transactionOption.Timeout = new TimeSpan(0, 8, 0);

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, transactionOption))
            {
                context.Entry(tt1).State = System.Data.Entity.EntityState.Modified;
                c.cardno = "56326764";
                c.createcardnoid = "563267645632676456326764563267645632676456326764563267645632676456326764563267645632676456326764";
                c.deposit = 20;
                c.rent = 20;
                c.balance = 60;
                context4.Set<Card>().Add(c);

                context.SaveChanges();

                context4.SaveChanges();

                scope.Complete();



            }
            return new string[] { "value1", "value2" };

        }

 由上代码可看出,事务处理两个数据库上下文类,也就可以说是分布式事务 ,如果一个数据库的话这样写代码就ok了,但是两个的话,第二个也就是context4会报错例如 基础程序open失败,这样我们需要设置msdtc,开启分布式服务(这些设置要在服务器端进行),具体怎么设置,参考

http://www.cnblogs.com/taiyonghai/p/6047849.html

还有文章:

找到控制面板,管理工具。

1.打开组件服务

2. 

3.打开本地DTC。按照照片上的勾选正确选项。

4.然后打开我的电脑的属性

5. 

6.打开COM安全上面编辑限制

7. 

8.点击添加

9. 

10.添加这一个。

11. 

12.然后把本地访问和远程访问都打上允许的对勾

13.然后点击下面的编辑限制

14. 

15.跟上一个一样,但是这个需要把四个都勾选上

16. 

17.打开高级防火墙

 

在出站规则里面打开2个分布式事务协调处理器(多的话都打开)

 

在入展规则里面打开6个分布式事务协调处理器(多的话都打开)

 

18. 组件服务-计算机-我的电脑出现红色向下箭头的解决办法

在“服务”里找到这三个服务,都启动就行了

Distributed Transaction Coordinator

Remote Procedure Call (RPC)

Security Accounts Manager

注意:有一部分新的计算机,由硬件方给安装的系统中,可能由于这种系统没有安装

system event notification service 服务

导致组件服务出现向下红箭头的问题.

   

找到控制面板,管理工具。1.打开组件服务2. 3.打开本地DTC。按照照片上的勾选正确选项。4.然后打开我的电脑的属性5. 6.打开COM安全上面编辑限制7. 8.点击添加9. 10.添加这一个。11. 12.然后把本地访问和远程访问都打上允许的对勾13.然后点击下面的编辑限制14. 15.跟上一个一样,但是这个需要把四个都勾选上16. 17.打开高级防火墙 在出站规则里面打开2个分布式事务协调处理器(多的话都打开) 在入展规则里面打开6个分布式事务协调处理器(多的话都打开) 18. 组件服务-计算机-我的电脑出现红色向下箭头的解决办法 在“服务”里找到这三个服务,都启动就行了 Distributed Transaction Coordinator Remote Procedure Call (RPC) Security Accounts Manager





注意:有一部分新的计算机,由硬件方给安装的系统中,可能由于这种系统没有安装system event notification service 服务导致组件服务出现向下红箭头的问题.

文章摘自未知大神

原文地址:https://www.cnblogs.com/wuyiran/p/6524042.html