我有一个本地运行的 WCF 服务。该服务有一个运行它的默认端口,但如果该端口已在使用中,那么我会动态分配该端口。
我在主机中添加了它以使其可被发现:
serviceHost.Description.Behaviors.Add(new ServiceDiscoveryBehavior());
serviceHost.AddServiceEndpoint(new UdpDiscoveryEndpoint());
现在我的客户需要连接到这个主机。在客户端我想让它首先尝试默认端口,如果它无法连接到默认端口上的服务,那么它将进行发现。
我发现发现大约需要 20-30 秒,所以我宁愿避免总是这样做,只有当它无法在默认端口上找到主机时。
所以我的问题是:确定我的主机是否在默认端口上的最快方法是什么?
我正在考虑做一些事情,比如将客户端的打开超时设置为 10 秒,然后在打开时执行 try/catch,但这仍然需要等待 10 秒。