У меня есть служба Windows, которая каждые 15 минут запускается для синхронизации данных через веб-службу HTTP REST. Кажется, что он обходит 128 HTTP PUTS через пару сотен запросов, а затем просто останавливается без ошибок. Есть ли какой-то тайм-аут процесса, который может вызвать проблему? Если да, то как я могу это изменить. Я пишу каждую запись в EventViewer, проходит ли она или не работает, и я не вижу ясных ошибок.Служба Windows OnTimer останавливается до завершения процесса
-1
A
ответ
0
Если вы используете код System.Timers.Timer
, чтобы выполнить код, вероятность того, что обработчик прошедшего времени проглотил исключение.
Wrap your entire handler in a try catch block, and rethrow the exception on the threadpool. Что-то вроде этого:
void elapsed_handler(object sender, EventArgs e)
{
try
{
DoWork();
}
catch (Exception ex)
{
ThreadPool.QueueUserWorkItem(
_ => { throw new Exception("Exception on timer thread.", ex); });
}
}
Смежные вопросы
- 1. Многопроцессорность: основная программа останавливается до завершения процесса
- 2. InputStreamReader останавливается до завершения
- 3. Служба Windows автоматически останавливается
- 4. служба Windows, автоматически останавливается
- 5. служба windows не останавливается
- 6. Ожидание до завершения процесса
- 7. Активация процесса Windows/служба Windows
- 8. Служба Windows не останавливается «Начало»
- 9. Служба Windows не останавливается/запускает
- 10. C# Служба Windows запускается, но завершает работу после завершения процесса
- 11. дожидаться завершения процесса до завершения всего подпроцесса?
- 12. Задержка начала процесса до завершения родительского процесса
- 13. Служба Windows не останавливается и перезагружается
- 14. generate_tiles.py останавливается до завершения запрошенных уровней масштабирования
- 15. Служба Windows не останавливается без перезагрузки?
- 16. Служба Windows останавливается сразу после запуска
- 17. C# Служба Windows запускается, а затем останавливается
- 18. Служба, начатая PhoneStateListener, была убита до завершения
- 19. Почему моя служба останавливается?
- 20. Переименование расширения несущей волны до завершения процесса
- 21. Как извлечь входной поток до завершения процесса
- 22. Фоновый процесс ловит идентификатор процесса до завершения
- 23. Избегайте закрытия программы 7za.exe до завершения процесса
- 24. Цитирование точек до завершения процесса? Bash
- 25. Как создать задержку до завершения процесса ajax?
- 26. ContinueWith() не выполняется до завершения хост-процесса
- 27. Зафиксировать обновления UpdatePanel до завершения синхронного процесса
- 28. Shell скрипт ждать до завершения процесса
- 29. Показывать/обновлять компоненты до завершения процесса
- 30. Сбой процесса ssh2_exec до завершения PHP Bash
Нет, нет такого ограничения. Скорее всего, это ошибка в коде. – nvoigt
Вы останавливаете таймер во время процесса, а затем снова запускаете его после завершения. Я подозреваю, что ваша обработка может быть нарушена таймером снова, прежде чем ваша обработка будет завершена. Имейте в виду, что это строго «удар в темноте», поскольку вы не показали нам никакого кода. – Kevin
Я думал, что это так, но я запустил код на странице ASP.NET, и он отлично работал. Я подсчитал количество времени и удвоил его для события таймера, чтобы устранить это как проблему. Поскольку существует так много HTTP-запросов, я собираюсь поместить каждый блок вызовов в отдельный поток, чтобы узнать, помогает ли это. –