gpt4 book ai didi

c# - 如何更早发现不良端点?

转载 作者:太空狗 更新时间:2023-10-30 01:27:53 25 4
gpt4 key购买 nike

当我尝试连接到一台不可用的机器时,我得到一个 EndpointNotFoundException,但它花费的时间太长(大约 20 秒)。设置 closeTimeout、openTimeout、receiveTimeout 或 sendTimeout 无效。我能早点得到那个异常吗?

最佳答案

我们使用的是 EnterpriseLibrary ConnectionMonitor block ,它运行良好,您可以使用它定义自己的策略来确定连接可用性,但我们只使用包装盒中的那个。

该默认代码(确实在后台线程上运行...由 block 处理)在内部使用:

        public bool IsAlive(string hostnameOrAddress)
{
bool alive = false;
try
{
Uri address = new Uri(hostnameOrAddress);
HttpWebRequest request = (HttpWebRequest) HttpWebRequest.Create(address);
request.Timeout = 5000;
using (HttpWebResponse response = (HttpWebResponse) request.GetResponse())
{
alive = DoesResponseStatusCodeIndicateOnlineStatus(response);
}
}
catch (WebException wex)
{
alive = DoesWebExceptionStatusIndicateOnlineStatus(wex);
}

return alive;
}

看看 block 本身,看看您是否可以在您的项目中使用它,或者获得一些关于如何解决您的特定问题的想法。 (从内存中该 block 是 SCSF 智能客户端软件工厂的一部分)

但我的理解是,您需要执行某种后台线程处理或自己等待超时。在调用超时之前,WCF 不知道端点不存在。

关于c# - 如何更早发现不良端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2055943/

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