TransactionScope в среднем доверии - PullRequest
0 голосов
/ 04 февраля 2010

Я запускаю приложение ASP.NET MVC, размещенное на Mosso, и говорят мне, что они не могут включить DTC, потому что они запускают все со средним доверием.

Поэтому при выполнении кода, который ссылается: TransactionScope, я получаю следующееошибка.Менеджер транзакций отключил поддержку удаленных / сетевых транзакций.(Исключение из HRESULT: 0x8004D024)

Есть ли способ обойти это?

1 Ответ

0 голосов
/ 04 февраля 2010

Используете ли вы несколько контекстов данных? Использование одного контекста данных в TransactionScope не должно приводить к переводу транзакции в распределенную транзакцию. Если вы используете несколько контекстов данных, убедитесь, что они используют одно и то же соединение. Я бы подумал, что если они будут использовать соединение, он получит транзакцию, связанную с областью действия, и просто использует ее. Если нет, вам может потребоваться явно установить транзакцию в контексте.

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