2010-08-27 2 views
4

У меня есть WebService, который размещен на веб-сайте ASP.NET. Внутри объекта TransactionScope используется для обработки транзакций:Как бороться с TransactionScope во время отладки?

 using (TransactionScope scope = new TransactionScope()) 
     { 
      ... 
      scope.Complete(); 
     } 

Проблема заключается в том, что во время отладки, когда я иду через каждую строку в режиме шаг за шагом, тайм-аут транзакции произошла и любая попытка доступа к БД сбой «с ошибкой», и в результате: дальнейшая отладка запрещена.

Как я могу справиться с этим, не удаляя указанные строки кода?

P.S. Я пытался найти, как увеличить тайм-аут созданной транзакции, но не нашел что-то полезное.

Любые мысли приветствуются.

Спасибо.

ответ

3

Вы можете указать бесконечное время ожидания для транзакции путем передачи нулевой длиной TimeSpan как часть конструктора:

using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0))) 

TransactionScopeOption потребного является то, что по умолчанию используется с вашим конструктором без параметров.

Для получения дополнительной информации см. http://msdn.microsoft.com/en-us/library/ms172152(VS.90).aspx.

+0

это потребует изменения исходного кода каждый раз перед отладкой? В качестве решения можно было бы создать фабрику TrasactionScope, которая будет принимать бесконечные транзакции в режиме отладки ... Если нет другого варианта, я попытаюсь посмотреть, как управлять переменной «DEBUG» в приложении ASP.NET ... – Budda

+0

Да, конечно. Используйте фабрику и проверьте, работает ли она в режиме отладки. – DavidGouge

Смежные вопросы