1

我有一个调用服务的 WCF 客户端,目前我们已将超时设置为 2 分钟。

一旦达到超时,我们将在 catch 中处理它。

在 catch 中,我们正在检查连接是否出现故障,如果出现故障,我们正在创建一个新客户端,然后我们再次调用请求,我们这样做了 3 次。一旦达到重试计数,我们将关闭客户端。

代码看起来像

public object CallWebMethod(string webMethodName, oject Request)`
{
    response = Client.GetData(request);
}

Catch (Exception ex)
{
    if(retry<4)
    {
        if(Client!=null && Client.State == CommunicationState.Faulted)
       {
            Client = new Client();
        }
        response = CallWebMethod(webmethodname, request);
    }
}

finally
{
  if(Client!=null)
  {
     Client.Close();
  }
}

我们偶尔会收到 Thread abort 异常,这里我的问题是,如果在执行第二个请求时出现第一个响应会发生什么?

我还注意到我们甚至在指定的超时之前就收到了后续请求。

即使我已经使用此站点完全有效地获得答案,我还是不熟悉提出问题。请帮忙 :)

4

0 回答 0