是否有任何技巧,窍门或方法来获取有关System.Transactions.TransactionScope运行时行为的性能分析/记录/调试信息?
我有一个将数据提交到数据库的应用程序,即使我使用的是System.Transactions.TransactionScope,它会引发异常并且从不调用TransactionScope.Commit().
我想知道是否有TransactionScope使用的其他类的事件或详细信息,可以在运行时查询以确定我的命令(类型化数据适配器)是否正在征集环境事务.
使用Reflector查看System.Transactions.dll后,我认为System.Transactions.Diagnostics命名空间可能会有所帮助,但是任何示例都将不胜感激.
解决方法:
查看这篇文章: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/