Winservice and exception
От: Аноним  
Дата: 21.06.13 12:38
Оценка:
Есть windows service, написан под .NET но где-то глубоко в дебрях (в 3-hd party library) используется то-ли unsafe то ли unmananged код.
Сервис с периодичностью Х секунд выполняет функцию "DoSomething" обернутую try catch.
Но несколько раз в день этот сервис вываливает на экран сообщение:
Если таких окон 5-6 то сервис просто перестает работать.
Что можете посоветовать, чтобы заставить сервис работать молча, исключения — не обращать внимание.

Спасибо
Re: Winservice and exception
От: ZloeBablo Германия  
Дата: 21.06.13 12:44
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть windows service, написан под .NET но где-то глубоко в дебрях (в 3-hd party library) используется то-ли unsafe то ли unmananged код.

А>Сервис с периодичностью Х секунд выполняет функцию "DoSomething" обернутую try catch.
А>Но несколько раз в день этот сервис вываливает на экран сообщение:
А>Если таких окон 5-6 то сервис просто перестает работать.
А>Что можете посоветовать, чтобы заставить сервис работать молча, исключения — не обращать внимание.

А>Спасибо


1) Appdomain.UnhandledException обработать внутри сервиса?
2) написать Watchdog для сервиса..
Re[2]: Winservice and exception
От: hardcase Пират http://nemerle.org
Дата: 21.06.13 14:21
Оценка:
Здравствуйте, ZloeBablo, Вы писали:

ZB>2) написать Watchdog для сервиса..


Строго говоря, Windows сама умеет перезапускать упавшие сервисы.
/* иЗвиНите зА неРовнЫй поЧерК */
Re: Winservice and exception
От: breee breee  
Дата: 23.06.13 21:13
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Есть windows service, написан под .NET но где-то глубоко в дебрях (в 3-hd party library) используется то-ли unsafe то ли unmananged код.

А>Сервис с периодичностью Х секунд выполняет функцию "DoSomething" обернутую try catch.
А>Но несколько раз в день этот сервис вываливает на экран сообщение:
А>Если таких окон 5-6 то сервис просто перестает работать.
А>Что можете посоветовать, чтобы заставить сервис работать молча, исключения — не обращать внимание.

А>Спасибо


Предлагаю сначала разобраться что происходит. Такое сообщение разве не означает, что сервис упал? Что значит после 5-6 окон сервис перестает работать? Его кто-то перезапускает после падения и перестает это делать после 5-6 раза?
Чтобы не обращать внимание на это исключение можно попытаться определить его тип (возможно, AccessViolationException), добавить соответствующий catch-блок в том месте где он вылетает и никак не обрабатывать. Это не работает? Хотя, если там происходит порча памяти, например, то до добра это не доведет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.