我正在制作一个WP8应用程序。
我注意到如果服务器正常工作,一切都很好,
但如果服务器宕机,我会收到一个异常。
在代码中如何检查wcf服务是否已激活,然后再使用其方法?
在代码中如何检查wcf服务是否已激活,然后再使用其方法?
在你的Web服务中实现一个无操作方法并使用较低的超时调用它。如果成功,服务已经启动。如果由于任何原因调用失败,则服务已经停止。
实际上,为什么服务器经常宕机呢?也许要确保它始终可用会更容易些。
public bool IsRunning() { return true; }
使用try-catch块来处理客户端的FaultException
。调用此方法时,如果服务停止运行,它将返回true或引发异常。在调用其方法之前,您可能还希望检查客户端WCF代理是否未处于故障状态。
这是没有捷径可走的。这是一个非常特殊的情况。如果您确保服务器没有宕机,可以轻松地ping它或尝试下载一个简单的静态文件,例如文本/HTML文件,大小越小越好。supafly的答案并没有错,但这与您所处的情况相同。