2009-11-10 3 views
3

Есть ли советы, рекомендации или методы для получения профилирования/регистрации/отладки информации о времени выполнения System.Transactions.TransactionScope?Продвинутая отладка System.Transactions

У меня есть приложение, которое передает данные в базу данных, хотя я использую System.Transactions.TransactionScope, где выбрано исключение, и TransactionScope.Commit() никогда не вызывается.

Мне было интересно, есть ли события или подробности о других классах, используемых TransactionScope, которые я могу запросить во время выполнения, чтобы установить, являются ли мои команды (типизированные адаптеры данных) завершающей транзакцией или нет.

Рассмотрев 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.

В противном случае вы могли бы разместить код.

Смежные вопросы