Как убить собственную службу Windows - PullRequest
2 голосов
/ 16 апреля 2009

Служба WCF размещена в службе Windows (WS).

Когда база данных (SqlServer 2005) выходит из строя, генерируется SqlException из-за действий, выполняемых над базой данных.

Что я хочу сделать, так это то, что WS - где размещена служба WCF - должен отключиться, когда БД также не работает.

Кстати, WS будет перезапущен вручную.

Моя идея - ничего не делать. Необработанное исключение остановит WS.

Это правильный способ сделать?

Ответы [ 2 ]

2 голосов
/ 16 апреля 2009

Если вы хотите явно остановить службу Windows, просто вызовите метод .Stop () вашего класса обслуживания.

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

Марк

1 голос
/ 16 апреля 2009

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

...