我有一个调用服务的WCF客户端,目前我们已将超时设置为2分钟。
一旦达到超时,我们就会在捕获中处理它。
在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();
}
}
我们偶尔会遇到线程中止异常,我的问题是如果在执行第二个请求时出现第一个响应会发生什么?
我还注意到,即使在指定的超时之前,我们也会收到后续请求。
我很想问一个问题,尽管我已经使用这个网站来获得答案。请帮助:)