【发布时间】:2012-02-28 09:02:45
【问题描述】:
我想监控 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://localhost/service.svc' 的 HTTP 服务太忙。
留言:
远程服务器返回错误:(503) Server Unavailable。
更新 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??
{
...
}
【问题讨论】:
标签: c# .net wcf exception-handling http-error