• 分布式事务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 服务导致组件服务出现向下红箭头的问题.

    文章摘自未知大神

  • 相关阅读:
    C#中d的??和?
    Android开发匹配字符笔记
    25个CSS3 渐变和动画效果教程
    精选PSD素材下载周刊【Goodfav PSD 20130720】
    25个吸引眼球的广告设计
    智能手机移动应用的8个趋势
    为网页设计师准备的30个使用的HTML5框架
    来自极客标签10款最新设计素材-系列十一
    九度OJ 1008最短路径问题
    最短路+邻接表+最小堆的C++代码实现
  • 原文地址:https://www.cnblogs.com/wuyiran/p/6524042.html
Copyright © 2020-2023  润新知