2009-11-10 42 views
3

是否有任何提示,技巧或方法获得有关System.Transactions.TransactionScope的运行时行为的分析/日志记录/调试信息?高级System.Transactions调试

我有一个提交数据到数据库的应用程序,即使我正在使用System.Transactions.TransactionScope,抛出了异常,并且从未调用过TransactionScope.Commit()

我想知道TransactionScope所使用的其他类是否有事件或细节,我可以在运行时查询以确定我的命令(类型化数据适配器)是否正在征用环境事务。

在使用Reflector查看System.Transactions.dll后,我认为System.Transactions.Diagnostics命名空间可能会有帮助,但任何示例都将非常感谢。

回答

3

退房这篇文章:http://blogs.msdn.com/b/madhuponduru/archive/2008/02/18/system-transactions-trace.aspx

添加以下信息到你的应用程序配置文件,以跟踪System.Transactions的要求

<configuration> 
<system.diagnostics> 
    <sources> 
    <source name="System.Transactions" switchValue="Information"> 
    <listeners> 
    <add name="tx" type="System.Diagnostics.XmlWriterTraceListener" initializeData= "tx.log" /> 
    </listeners> 
    </source> 
</sources> 
</system.diagnostics> 

更多信息: 一旦你得到了追踪文件,您可以在SvcTraceViewer.exe中打开跟踪 您可以启用MSDTC事务跟踪,CM跟踪以了解更多关于事务的信息 参考: http://msdn2.microsoft.com/en-us/library/ms229979.aspx http://msdn2.microsoft.com/en-us/library/ms678891.aspx http://support.microsoft.com/kb/926099/ http://support.microsoft.com/kb/898918/

0

您是否正在使用参数创建事务范围?

对于Supress的事务范围选项,这种行为是可以预料的。

否则你可以发布一些代码。