<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    如果在C#中使用TransactionScope類(分布式事務(wù)),則須注意如下事項(xiàng):
    1、在項(xiàng)目中引用using System.Transactions命名空間(先要在添加net組件的引用);

    2、具體示例如下:
      


            /// <summary>
            
    /// 發(fā)送消息
             
    /// </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();

                
    //設(shè)置事務(wù)隔離級別
                transactionOption.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;

                
    // 設(shè)置事務(wù)超時(shí)時(shí)間為60秒
                transactionOption.Timeout = new TimeSpan(0060);

                
    using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, transactionOption))
                
    {
                    
    try
                    
    {
                        
    //在這里實(shí)現(xiàn)事務(wù)性工作
         
    //發(fā)送消息
                        insertMessage(sendUserId, toUser, content, sendedStatus);

         
    //在接收信息表中插入記錄
                        receiveCount += insertReceiveMessage(userids[0], sendUserId, content, "0");
                       
                        
    // 沒有錯(cuò)誤,提交事務(wù)
                        scope.Complete();
                    }

                    
    catch (Exception ex) {
                        
    throw new Exception("發(fā)送信息異常,原因:"+ex.Message);
                    }finally{
                        //釋放資源
                        scope.Dispose();
                      }
                                   
                }

                
    return receiveCount;
            }



     3、對MSDTC組件設(shè)置:
     步驟:
      在控制面板--->管理工具--->服務(wù) 中,開啟Distributed Transaction Coordinator 服務(wù)。
     a.控制面板->管理工具->組件服務(wù)->計(jì)算機(jī)->我的電腦->右鍵->屬性
     b.選擇MSDTC頁, 確認(rèn)"使用本地協(xié)調(diào)器"
     c.點(diǎn)擊下方"安全配置"按鈕
     d.勾選: "允許網(wǎng)絡(luò)DTC訪問","允許遠(yuǎn)程客戶端","允許入站","允許出站","不要求進(jìn)行身份驗(yàn)證".
     e.對于數(shù)據(jù)庫服務(wù)器端, 可選擇"要求對呼叫方驗(yàn)證"
     f.勾選:"啟用事務(wù)Internet協(xié)議(TIP)事務(wù)"。
     g.在雙方防火墻中增加MSDTC.exe例外
       可用命令行: netsh firewall set allowedprogram %windir%\system32\msdtc.exe MSDTC enable

    4、重啟IIS服務(wù)器。

    posted on 2009-03-17 17:02 aisoft 閱讀(17041) 評論(3)  編輯  收藏 所屬分類: .NET技術(shù)

    FeedBack:
    # re: C#語言中TransactionScope類的使用[未登錄]
    2012-01-12 14:05 | a
    aaaaaa  回復(fù)  更多評論
      
    # re: C#語言中TransactionScope類的使用[未登錄]
    2012-01-12 14:06 | a
    # re: C#語言中TransactionScope類的使用
    2012-09-29 10:44 | slx
    微軟這套分布式事務(wù)的方案,實(shí)在不怎么樣. 居然還要設(shè)置數(shù)據(jù)庫服務(wù)器的.如果其中一個(gè)數(shù)據(jù)庫是Oracle安裝在Lunix服務(wù)器上怎么搞?  回復(fù)  更多評論
      
    <2012年9月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    隨筆檔案(2)

    文章分類(12)

    文章檔案(12)

    收藏夾

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 亚洲精品无码av天堂| 亚洲精品中文字幕乱码三区| 美女尿口扒开图片免费| 亚洲日韩在线观看免费视频| 久别的草原电视剧免费观看| 亚洲人成人无码.www石榴| 不卡精品国产_亚洲人成在线| 免费人成在线观看网站品爱网| 亚洲熟妇无码八V在线播放| 国产精品亚洲mnbav网站| 91九色老熟女免费资源站| 黄色a级片免费看| 亚洲精品日韩中文字幕久久久| 国产精品jizz在线观看免费| 久久久久免费看成人影片| www亚洲精品久久久乳| 亚洲国产精品线在线观看| 亚洲Av无码乱码在线观看性色 | 亚州免费一级毛片| 精品一区二区三区无码免费直播 | 91亚洲精品第一综合不卡播放| 国产三级免费观看| 亚洲一级免费视频| 成人免费777777被爆出| 亚洲AV性色在线观看| 久久丫精品国产亚洲av| 久久久久亚洲AV无码专区桃色 | 亚洲色成人网一二三区| 亚洲精品色婷婷在线影院| 久久精品免费一区二区喷潮| 久久aa毛片免费播放嗯啊| 一级做受视频免费是看美女| 亚洲中文字幕无码中文字| 97se亚洲综合在线| 亚洲韩国精品无码一区二区三区 | 噼里啪啦免费观看高清动漫4| 99精品全国免费观看视频..| 曰批全过程免费视频观看免费软件| 亚洲一级毛片视频| 亚洲黑人嫩小videos| 亚洲阿v天堂在线|