【问题标题】:Handling service unavailable errors in asp.net处理asp.net中的服务不可用错误
【发布时间】:2011-02-18 12:03:23
【问题描述】:

我有一个 asp.net 应用程序,它将始终与 wcf 服务交互以处理数据。我的问题是服务是否未运行或某些原因超时。我需要如何处理来自我的消费应用程序的服务异常。

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

感谢您对此的帮助。

谢谢, 基兰

【问题讨论】:

    标签: asp.net wcf exception-handling


    【解决方案1】:

    假设您的服务接受 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,您可以定期从客户端调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-17
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多