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

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

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

    如果在C#中使用TransactionScope類(分布式事務(wù)),則須注意如下事項:
    1、在項目中引用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ù)超時時間為60秒
                transactionOption.Timeout = new TimeSpan(0060);

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

         
    //在接收信息表中插入記錄
                        receiveCount += insertReceiveMessage(userids[0], sendUserId, content, "0");
                       
                        
    // 沒有錯誤,提交事務(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ù)->計算機->我的電腦->右鍵->屬性
     b.選擇MSDTC頁, 確認(rèn)"使用本地協(xié)調(diào)器"
     c.點擊下方"安全配置"按鈕
     d.勾選: "允許網(wǎng)絡(luò)DTC訪問","允許遠(yuǎn)程客戶端","允許入站","允許出站","不要求進行身份驗證".
     e.對于數(shù)據(jù)庫服務(wù)器端, 可選擇"要求對呼叫方驗證"
     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ù)據(jù)庫服務(wù)器的.如果其中一個數(shù)據(jù)庫是Oracle安裝在Lunix服務(wù)器上怎么搞?  回復(fù)  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    隨筆檔案(2)

    文章分類(12)

    文章檔案(12)

    收藏夾

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 中文字幕精品亚洲无线码二区 | 亚洲国产精品专区| 成人免费区一区二区三区| 亚洲高清无码专区视频| 污视频网站免费观看| MM131亚洲国产美女久久| 黄色a三级三级三级免费看| 亚洲精品成人区在线观看| 久香草视频在线观看免费| 亚洲一区二区三区影院| yy一级毛片免费视频| 国产成人精品日本亚洲| 99久久精品免费视频| 亚洲人成小说网站色| 午夜色a大片在线观看免费| 在线亚洲精品视频| 亚洲国产专区一区| 最近免费mv在线观看动漫| 久久亚洲精品无码VA大香大香| 在线看片免费人成视久网| 亚洲一本到无码av中文字幕| 免费国产怡红院在线观看| 男的把j放进女人下面视频免费| 亚洲午夜福利在线观看| 97在线视频免费播放| 亚洲欧好州第一的日产suv| 亚洲国产av一区二区三区| 在线成人a毛片免费播放| 亚洲区日韩精品中文字幕| 亚洲第一成人影院| 中文字幕无码日韩专区免费| 亚洲中文无码av永久| 日本a级片免费看| ssswww日本免费网站片| 成人人免费夜夜视频观看| 黄页网址在线免费观看| 中文字幕亚洲精品资源网| 永久黄网站色视频免费观看| 成人无码区免费A∨直播| 亚洲人成人网毛片在线播放| 自拍偷自拍亚洲精品第1页 |