2010-05-12 40 views
1

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

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

赞赏您对此的帮助。

感谢, 基兰

回答

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; 
} 

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