处理asp.net中的服务不可用错误

时间:2010-05-12 07:57:00

标签: asp.net wcf exception-handling

我有一个asp.net应用程序,它将始终与wcf服务交互以与数据进行交易。我的问题是,如果服务没有运行或某些原因超时。我如何处理我的消费应用程序中的serivce异常。

我们正在使用faultcontract异常来处理我们在服务中遇到的任何运行时异常。但是,如果服务本身没有运行,我如何向用户发送“服务不可用,请运行服务”的客户消息。

感谢你的帮助。

谢谢, 基兰

1 个答案:

答案 0 :(得分:0)

假设您的服务接受http get,一个选项将使用以下内容从客户端询问服务元数据:

var svcUri = new Uri("http://yourhost/service.svc?wsdl");
MetadataExchangeClient mexClient = new MetadataExchangeClient(svcUri, MetadataExchangeClientMode.HttpGet);
var isHealthy = true;
try
{
   MetadataSet metadata = mexClient.GetMetadata();
}
catch (Exception ex)
{
    isHealthy = false;
} 

另一种选择是添加一个“heartbeat”方法,该方法将一个int或bool返回给服务本身,您可以定期从客户端调用它。