我有一个调用服务的 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 异常,这里我的问题是,如果在执行第二个请求时出现第一个响应会发生什么?
我还注意到我们甚至在指定的超时之前就收到了后续请求。
即使我已经使用此站点完全有效地获得答案,我还是不熟悉提出问题。请帮忙 :)