抛出EndPointNotFoundException所花费的时间

我从代码调用服务,如果服务因任何原因停止,它会给我EndPointNotFoundexception。

    

我没有设置openTimeOut,所以它将考虑默认的1分钟超时。

我这样叫服务,

  private void MyServiceCall(Action serviceCall) { try { if (serviceCall != null) { serviceCall(); } } catch (EndpointNotFoundException endpointNotFoundException) { throw new EndpointNotFoundException(endpointNotFoundException.Message, endpointNotFoundException); } 

我的问题是,如果服务停止,则需要1分钟才能抛出EndPointNotFoundException?

编辑::

在这种情况下,我知道服务已停止。 我正在通过停止服务来测试它。 问题是我们已经开发了断开连接的senario,如果服务是停止的,它将返回默认数据,但需要时间,所以我调查是openTimeOut负责它。

客户端连接失败的原因有很多,例如网络问题,服务器应用程序池停止/锁定,服务器ThreadPool耗尽等。

这些不一定会抛出EndpointNotFoundException – 例如,如果App Pool停止,则在客户端上出现503错误作为ServiceTooBusyException 。 在这种情况下,错误将“立即”发生,并且不会“等待”服务器在服务器上“恢复”自身的配置超时持续时间。 (即openTimeout指定允许的最大时间)

你可能最好从捕获其中一个基本exception并从那里开始工作,例如System.ServiceModel.CommunicationException ,甚至只是一个System.Exception

在一个不相关的点上,请注意任意“最大化”所有WCF配置设置是不明智的 – 请参阅C#WCF – 客户端/服务器 – System.OutOfMemoryexception 。

TimeSpan值,指定为打开操作完成所提供的时间间隔 该值应大于或等于零。 默认值为00:01:00。

所以我从中理解的是,已经打开的操作应该在一分钟内完成。 任何意见 ?? 因为我正在测试它,并且只需要5秒就可以抛出EndPointNotFoundException