2010-08-27 52 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