3
我有WCF服务器和WCF客户端。当部署新版本的客户端时,我想检查它是否已准备好运行,所以我必须检查服务器是否在线。WCF:如何检查服务器是否可访问?
我不想做任何真正的服务器调用(因为调用可以改变生产数据),或者在服务器上创建空的{...}“测试”方法。
是否可以检查WCF服务器端点是否存在,并在没有方法调用的情况下侦听连接?
我想:
factory = new ChannelFactory<IServer>())
factory.CreateChannel();
和
factory = new ChannelFactory<IServer>())
factory.Open();
,但没有异常,如果服务器处于脱机状态。 如何在没有服务器方法调用的情况下检查服务器状态?
预先感谢您!
嗨,@Samuel,你为什么放弃Ping方法? – 2011-03-23 10:07:08
@Andrew,刚刚更新了我的回答 - 原因是你需要让Pinging确保服务仍然运行。只要尝试拨打电话并查看是否成功,就容易得多。 – 2011-03-23 10:10:51
+1准确地说 - 即使在你的服务上有一个Ping方法**也不能保证**几秒钟内下一次服务调用会成功 - 所以它根本不会告诉你任何东西......只需调用服务并准备好处理可能发生的任何可能的异常! – 2011-03-23 10:14:36