gpt4 book ai didi

c# - 检查 WCF 服务是否正在运行的最快方法

转载 作者:可可西里 更新时间:2023-11-01 02:32:24 26 4
gpt4 key购买 nike

我有一个本地运行的 WCF 服务。该服务有一个运行它的默认端口,但如果该端口已被使用,我会动态分配该端口。

我在主机中添加了它以使其可被发现:

serviceHost.Description.Behaviors.Add(new ServiceDiscoveryBehavior());
serviceHost.AddServiceEndpoint(new UdpDiscoveryEndpoint());

现在我的客户端需要连接到这个主机。在客户端中,我想让它首先尝试默认端口,如果它无法连接到默认端口上的服务,那么它将进行发现。

我发现发现大约需要 20-30 秒,所以我宁愿避免总是这样做,只有当它在默认端口上找不到主机时才这样做。

所以我的问题是:确定我的主机是否在默认端口上的最快方法是什么?

我正在考虑做一些事情,比如将客户端的打开超时设置为 10 秒,然后在打开时执行 try/catch,但这仍然需要等待 10 秒。

最佳答案

因此,如果您的端点不正确,调用 client.Open(); 将不会抛出任何异常。

我在我的服务中添加了一个名为 IsAlive() 的方法,它只返回 true。所以我在打开后调用 client.IsAlive();,如果端点不正确,几乎会立即出现异常。

关于c# - 检查 WCF 服务是否正在运行的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18020506/

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