【问题标题】:TransactionScope in a medium trust中等信任中的 TransactionScope
【发布时间】:2010-02-03 21:17:43
【问题描述】:

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

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

有没有办法解决这个问题?

【问题讨论】:

    标签: asp.net asp.net-mvc transactionscope


    【解决方案1】:

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

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

    【讨论】:

    • 我没有使用多个dataContexts,只是尝试运行以下代码: using(TransactionScope Scope = new TransactionScope(TransactionScopeOption.RequiresNew, TransactionTimeOut)) { try { //meat of transaction... }捕获(异常前){ 抛出前;范围。完成(); }
    • 我认为这与:stackoverflow.com/questions/794364/… 有关,并且由于 mosso 是中等信任度,我认为他们不会启用“网络 DTC 访问”。还有其他想法吗?
    猜你喜欢
    • 2012-06-06
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 2011-02-01
    • 2010-11-22
    相关资源
    最近更新 更多