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

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

2 голосов
/ 20 января 2009

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

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

Ответы [ 3 ]

1 голос
/ 20 января 2009

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

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

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

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

0 голосов
/ 20 января 2009

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

0 голосов
/ 20 января 2009

Это зависит от того, как вы предоставляете свои услуги.

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

...