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

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

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

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

    2、具體示例如下:
      


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

                
    //設置事務隔離級別
                transactionOption.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;

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

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

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

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

                
    return receiveCount;
            }



     3、對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

    4、重啟IIS服務器。

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

    FeedBack:
    # re: C#語言中TransactionScope類的使用[未登錄]
    2012-01-12 14:05 | a
    aaaaaa  回復  更多評論
      
    # re: C#語言中TransactionScope類的使用[未登錄]
    2012-01-12 14:06 | a
    a  回復  更多評論
      
    # re: C#語言中TransactionScope類的使用
    2012-09-29 10:44 | slx
    微軟這套分布式事務的方案,實在不怎么樣. 居然還要設置數據庫服務器的.如果其中一個數據庫是Oracle安裝在Lunix服務器上怎么搞?  回復  更多評論
      
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    隨筆檔案(2)

    文章分類(12)

    文章檔案(12)

    收藏夾

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 亚洲免费人成在线视频观看| 午夜亚洲国产理论片二级港台二级 | xvideos亚洲永久网址| 亚洲第一男人天堂| 女人18特级一级毛片免费视频| 国产亚洲?V无码?V男人的天堂 | 日韩精品免费视频| 亚洲ⅴ国产v天堂a无码二区| 国产精品偷伦视频观看免费 | 暖暖免费中文在线日本| 91免费国产精品| 亚洲精品美女在线观看播放| 成人福利免费视频| 亚洲第一男人天堂| 亚洲国产成人久久一区WWW| 国产成人无码免费看片软件| 久久亚洲国产午夜精品理论片 | 亚洲国产AV一区二区三区四区| 亚洲午夜免费视频| 色婷婷六月亚洲婷婷丁香| 成人福利免费视频| 亚洲AV无码一区二区大桥未久| 99精品视频免费观看| 亚洲男人av香蕉爽爽爽爽| 最近免费中文字幕中文高清 | 亚洲黄色免费观看| 成年女人毛片免费观看97| 美国毛片亚洲社区在线观看| 亚洲中文字幕在线第六区| 污视频在线观看免费| 亚洲中文字幕一二三四区苍井空 | 伊人久久大香线蕉亚洲| 久久不见久久见免费视频7| 在线亚洲午夜片AV大片| 亚洲精品成人a在线观看| 国产成人高清亚洲一区91| 亚洲综合色自拍一区| 久久久高清免费视频| 一个人免费观看视频在线中文 | 精品亚洲永久免费精品| 亚洲综合偷自成人网第页色|