如何在调试过程中处理TransactionScope?

4

我有一个WebService,它是由ASP.NET网站托管的。在内部使用TransactionScope对象来处理事务:

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

问题在于调试过程中,当我以逐步模式浏览每一行时,会发生事务超时,并且任何访问数据库的尝试都会崩溃并显示“错误”,因此:进一步的调试被禁止。
如何在不删除代码行的情况下处理这个问题?
附言:我已经尝试查找如何增加创建事务的超时时间,但没有找到有用的信息。
欢迎提出任何想法。
谢谢。
1个回答

3
您可以通过在构造函数中传递零长度的TimeSpan来指定事务的无限超时时间:
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0)))

在没有参数的构造函数中,默认使用TransactionScopeOption为Required。

更多信息请参见http://msdn.microsoft.com/en-us/library/ms172152(VS.90).aspx


需要在每次调试之前更改源代码吗?作为解决方案,可以创建一个TrasactionScope工厂,在调试模式下进行无限事务处理... 如果没有其他选项,我将尝试查看如何控制ASP.NET应用程序中的'DEBUG'变量... - Budda
当然可以。使用工厂并检查是否在调试模式下运行。 - DavidGouge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接