我有一些使用 a 的代码System.Transactions.TransactionScope
,创建事务范围的新实例只会停止程序。
没有异常或消息,程序只是停止,Visual Studio 返回到代码编辑模式。这个过程完全没有了。事件查看器中没有异常、消息或事件。
我有另一个使用 TransactionScope 没有问题的测试应用程序,所以它不应该是环境问题。
我只是不知道如何获取异常详细信息。我在 Visual Studio 的 Debug->Exceptions 对话框中打开了所有“抛出”复选框,希望 VS 在抛出异常时自动中断,但事实并非如此。
谁能帮我找出程序退出的原因?
编辑:我刚刚发现了一些新东西。TransactionScope 正在通过在后台线程上运行的方法中创建ThreadPool.QueueUserWorkItem
。如果我只是直接在主应用程序线程上调用该方法,这个问题就会消失。所以现在我的问题是“在线程池线程上使用 TransactionScope 有什么问题?”。注意在调用新线程之前我没有启动事务范围,它都在线程池线程上运行的一个方法中。