C # Service Timeout (30000 миллисекунд) ожидания ответа транзакции в средстве просмотра событий - PullRequest
1 голос
/ 26 августа 2009

У меня есть сервис на C #. Это память и процессор свинья. Он будет работать всю ночь, перемещая данные в базу данных. Около 7 часов утра он публикует в программе просмотра событий, несколько раз,

Тайм-аут (30000 миллисекунд) ожидания для ответа транзакции от Сервис ServName.

Тогда он неожиданно останавливается. Кто-нибудь знает, что означает это сообщение или как его диагностировать?

Обновление 1

Транзакции с БД не истекают. Консоль управления службой регистрирует это сообщение о попытке управления службой.

Обновление 2

Эта проблема не имеет ничего общего с доступом к базе данных. Это консоль управления службами, которая выдает ошибку при попытке управления службой.

Ответы [ 4 ]

1 голос
/ 21 марта 2011

Это происходит, если основной поток вашей службы не может вернуть управление в течение 30 секунд. Однако, если вы проверите свой диспетчер задач, ваш exe-сервис все равно будет работать в фоновом режиме.

Решение состоит в том, чтобы гарантировать, что основная функция вашего сервиса вернется обратно в течение периода ожидания.

-Surya

0 голосов
/ 26 августа 2009

Это может показаться странным, неосновным предложением, но ... исчерпано ли у БД пространство журнала транзакций?

0 голосов
/ 03 ноября 2009

Была такая же проблема. Вы правы, это не имеет ничего общего с базой данных. Я предполагаю, что вы используете Windows Server 2008 или Vista и что ваше приложение каким-то образом многопоточное.

Попробуйте это:

http://support.microsoft.com/kb/972596/

0 голосов
/ 26 августа 2009

Полагаю, транзакция длится дольше 30 секунд.

Попробуйте отправить транзакцию, что-то вроде:

использование (Transactionscope ...) вставить что-то спать 30 секунд вставить что-то еще.

Это должно дать вам тот же результат. Если это так, попробуйте оптимизировать или настроить время ожидания транзакции.

Надеюсь, это поможет

Привет.

...