2010-08-27 56 views
4

我有由ASP.NET網站託管的WebService。裏面的TransactionScope對象用於處理交易:如何在調試期間處理TransactionScope?

 using (TransactionScope scope = new TransactionScope()) 
     { 
      ... 
      scope.Complete(); 
     } 

的問題是,在調試過程中,當我在一步一步的模式正在經歷的每一行,就會發生 事務超時和任何企圖訪問DB ''錯誤,因此:禁止進一步的調試。

如何在不刪除上述代碼行的情況下處理該問題?

P.S.我試圖找到,如何增加創建事務的超時時間,但沒有找到有用的東西。

歡迎任何想法。

謝謝。

回答

3

您可以通過在零時間跨度長傳球作爲構造的一部分指定交易的無限超時:

using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0))) 

所需的TransactionScopeOption就是默認情況下使用你的參數構造函數。

請參閱http://msdn.microsoft.com/en-us/library/ms172152(VS.90).aspx瞭解更多信息。

+0

這將需要每次調試前更改源代碼?作爲一個解決方案,它可以創建TrasactionScope工廠,將調試模式下的無限交易... 如果沒有任何其他選項,我會嘗試看看如何控制ASP.NET應用程序中的'DEBUG'變量... – Budda 2010-08-29 16:51:01

+0

嗯,當然咯。使用工廠並檢查是否在調試模式下運行。 – DavidGouge 2010-08-29 18:32:58