如何判断在调试的 TransactionScope 范围内捕获了哪些事务或 SQL 查询或服务调用?

Posted

技术标签:

【中文标题】如何判断在调试的 TransactionScope 范围内捕获了哪些事务或 SQL 查询或服务调用?【英文标题】:How do I tell what transactions or SQL queries or service calls are captured in the scope of a TransactionScope in debug? 【发布时间】:2021-10-31 12:35:33 【问题描述】:

如何判断在调试中TransactionScope 范围内捕获了哪些事务或 SQL 查询或服务调用?

如果它们在TransactionScope 内,肯定有办法确认它的保护伞下是什么?

【问题讨论】:

【参考方案1】:

事务范围在您创建新的 TransactionScope 对象后启动,它确定要参与的事务。一旦确定,范围始终参与该事务。该决定基于两个因素:环境事务是否存在以及构造函数中 TransactionScopeOption 参数的值。

您可以查看以下链接了解更多详情:Implementing an Implicit Transaction using Transaction Scope。

【讨论】:

我正在创建一个服务代理,然后在 TransactionScope 内发出一个服务请求,但是服务请求完全忽略了 TransactionScope。我希望能够确定性地查看 TransactionScope 捕获的内容,而不仅仅是假设内容。这肯定是可能的吗?该链接没有显示任何相关信息。 它的toString()方法返回当前对象的字符串。我不知道这是否适合你,但你可以看到它says。

以上是关于如何判断在调试的 TransactionScope 范围内捕获了哪些事务或 SQL 查询或服务调用?的主要内容,如果未能解决你的问题,请参考以下文章

TransactionScope事务

如何加入 TransactionScope?

如何在多实例应用程序上处理 TransactionScope?

TransactionScope 如何回滚事务?

忽略特定查询的 TransactionScope

如何在 .NET 4.0 中使用 Microsoft.Bcl.Async 支持 TransactionScope 中的异步方法? [复制]