我有一个本地运行的WCF服务.该服务具有运行的默认端口,但如果该端口已在使用中,则我动态分配该端口.
我在主机中添加了这个以使其可被发现:
serviceHost.Description.Behaviors.Add(new ServiceDiscoveryBehavior());
serviceHost.AddServiceEndpoint(new UdpDiscoveryEndpoint());
Run Code Online (Sandbox Code Playgroud)
现在我的客户端需要连接到这台主机.在客户端我想让它首先尝试默认端口,如果它无法连接到默认端口上的服务,那么它将进行发现.
我发现这个发现需要大约20-30秒,所以我宁愿避免一直这样做,只有当它无法在默认端口上找到主机时.
所以我的问题是:确定我的主机是否在默认端口上的最快方法是什么?
我正在考虑做一些事情,比如将客户端上的打开超时设置为10秒,然后在打开时执行try/catch,但仍需要等待10秒.
因此,client.Open();
如果您的端点不正确,调用将不会抛出任何异常.
我在我的服务中添加了一个方法IsAlive()
,它只返回true.所以我client.IsAlive();
打开后调用,如果端点不正确,几乎会立即出现异常.
归档时间: |
|
查看次数: |
22752 次 |
最近记录: |