主にLINQtoSQLとSystem.Transactionsを使用するWebサービス(.asmxとWCFの混合)を提供するWebサイトがあります。時折、トランザクションが分散トランザクションに昇格し、MSDTCを使用できないようにWebサーバーがデータベースから分離されているために問題が発生することがあります。
web.configに以下を追加して、System.Transactionsのトレースを構成しました。
<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>
これは非常に興味深いものであり、トランザクションがプロモートされたときに表示されますが、その理由を見つけるのに実際には役立たないことがわかりました。
プーリングに影響を与える変数(ユーザー、cnn文字列、トランザクションスコープ)など、接続が作成されたときに表示されるADO.NETの同等のトレースメカニズムはありますか?