Надежный сервис WCF

Каков наилучший способ обеспечить надежность службы, чтобы предотвратить недоступность службы, если она становится недоступной, есть ли способ перезапустить службу?

заранее спасибо.

3 ответа

Решение

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

Или, если у вас Windows 2008, вы можете использовать WAS для размещения вашего сервиса, который автоматически перезапустит его.

Важно понимать, что у вашего сервиса может быть состояние, но в нем не запущен "поток", поэтому он не работает как таковой, объект просто существует. Вы в основном платите Microsoft за предоставление вам.net и WCF, которые заботятся о стороне хостинга, они гарантируют вам, что ваш сервис останется доступным.

Сбой метода может привести к сбою службы, но вы можете обработать любые исключения, с которыми вы можете изящно справиться, и позволить операционной системе справляться с вещами, которые вы не можете (например, с нехваткой памяти и т. Д.). Обратите внимание, что это ваша ответственность. разобраться с сервисом неисправным. Помимо этого, однако, WCF чрезвычайно надежен.

Это зависит от способа размещения вашего сервиса.

Объяснение и сравнение различных доступных вариантов можно найти здесь: http://msdn.microsoft.com/en-us/library/ms730158.aspx

Просто для ясности: если по какой-либо причине я не обработал исключение, и это вызвало остановку службы, в IIS 7.0 служба должна перезапуститься в новом состоянии.

Другие вопросы по тегам