TransactionScope 处于中等信任状态

发布于 2024-08-20 07:57:56 字数 191 浏览 4 评论 0原文

我正在运行由 Mosso 托管的 ASP.NET MVC 应用程序,有人告诉我他们无法启用 DTC,因为他们以中等信任度运行所有内容。

因此,当执行引用:TransactionScope 的代码时,我收到以下错误。事务管理器已禁用其对远程/网络事务的支持。 (HRESULT 异常:0x8004D024)

有什么办法可以解决这个问题吗?

Im running an ASP.NET MVC application hosted with Mosso, there are telling me that they cannot enable DTC because they run everything in medium trust.

So when executing code that references: TransactionScope I get the following error. The transaction manager has disabled its support for remote/network transactions. (Exception from HRESULT: 0x8004D024)

Is there anyway to get around this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤独陪着我 2024-08-27 07:57:56

您是否使用多个数据上下文?在 TransactionScope 中使用单个数据上下文不应强制将事务提升为分布式事务。如果您使用多个数据上下文,请确保它们共享同一连接。我认为,如果它们共享一个连接,它将获取与范围关联的事务并简单地使用它。如果没有,您可能需要在上下文上显式设置事务。

 using (var ts = new TransactionScope())
 {
      using (var dcOuter = new FooDataContext())
      {
           using (var dcInner = new BarDataContext( foo.Connection ))
           {
              ....
           }
      }
      ts.Complete();
 }

Are you using multiple data contexts? Using a single data context within a TransactionScope shouldn't force the transaction to be promoted to a distributed transaction. If you are using multiple data contexts, make sure that they are sharing the same connection. I would think that if they share a connection it would pick up the transaction associated with the scope and simply use it. If not, you might need to explicitly set the transaction on the context.

 using (var ts = new TransactionScope())
 {
      using (var dcOuter = new FooDataContext())
      {
           using (var dcInner = new BarDataContext( foo.Connection ))
           {
              ....
           }
      }
      ts.Complete();
 }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文