Я хочу отслеживать сервер WCF и отправлять уведомления по электронной почте, если сервер не работает.Для этого я пишу консольное приложение, которое периодически отправляет фиктивный запрос на сервер и проверяет, отправлен ли ответ обратно.Когда консольное приложение получило исключение, на сервере возникли проблемы, включая отключение сервера.
Однако проблема заключается в том, что я получил другое исключение из-за другого состояния сервера.Ниже приведены исключения, возвращаемые сервером, когда он находится в другом состоянии.Тем не менее, все, кажется, принадлежат к категории сервера вниз.Любая идея ??:
Когда IIS выключен
System.ServiceModel.EndpointNotFoundException,
Сообщение:
Там былонет конечной точки прослушивания на http://localhost/service.svc, которая могла бы принять сообщение.Это часто вызвано неправильным адресом или действием SOAP.См. InnerException, если имеется, для получения более подробной информации.
Внутреннее сообщение об исключении: удаленный сервер возвратил ошибку: (404) Not Found
Когда файл Web.config
намеренно изменено на неправильное имя:
System.ServiceModel.ServiceActivationException
Ссылка: http://localhost/service.svc
Сообщение:
Запрошенная служба, 'http://localhost/service.svc' можетне быть активирован.Дополнительные сведения см. В журналах диагностической трассировки сервера.
По другой неизвестной причине
System.ServiceModel.ServerTooBusyException
Сообщение:
Служба HTTP, расположенная по адресу http://localhost/service.svc', слишком занята.
Сообщение:
Удаленный сервер вернул ошибку: (503) Сервер недоступен.
Обновление1
Исключение НЕ всегда возвращает код состояния http.
Обновление 2 Помимо использования прокси WCF для вызова службы, я также должен использовать WebRequest, как показано ниже:
try
{
WebRequest webRequest = WebRequest.Create(uri);
webRequest.Method = "GET";
HttpWebResponse httpWebResponse = (HttpWebResponse)webRequest.GetResponse();
}
catch () //what excpetion will tell me server is down??
{
...
}