我有一个asp.net应用程序,它将始终与wcf服务交互以与数据进行交易。我的问题是,如果服务没有运行或某些原因超时。我如何处理我的消费应用程序中的serivce异常。
我们正在使用faultcontract异常来处理我们在服务中遇到的任何运行时异常。但是,如果服务本身没有运行,我如何向用户发送“服务不可用,请运行服务”的客户消息。
感谢你的帮助。
谢谢, 基兰
答案 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返回给服务本身,您可以定期从客户端调用它。