gpt4 book ai didi

c# - 抛出 EndPointNotFoundException 所花费的时间

转载 作者:太空宇宙 更新时间:2023-11-03 11:24:17 24 4
gpt4 key购买 nike

我正在通过代码调用服务,如果服务因任何原因停止,它会给我 EndPointNotFound 异常。

 <binding name="NormalMode" transferMode="Buffered" receiveTimeout="24.20:31:23.6470000">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
<security mode="None" />
</binding>

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

我是这样调用服务的,

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

我的问题是,如果服务停止,那么抛出 EndPointNotFoundException 是否需要 1 分钟?

编辑::

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

最佳答案

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

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

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

关于一个不相关的问题,请注意任意“最大化”所有 WCF 配置设置是不明智的 - 参见 C# WCF - Client/Server - System.OutOfMemory Exception .

关于c# - 抛出 EndPointNotFoundException 所花费的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10007972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com