检测wcf服务是否已激活

我正在制作WP8应用程序。 我注意到,如果服务器工作一切正常,但如果服务器关闭,我会得到一个例外。

如果在使用他的方法之前激活wcf服务,我如何检查代码?

在Web服务中实现no-op方法,并以低超时调用它。 如果有效,服务就开始了。 如果呼叫因任何原因失败,则服务已关闭。

实际上,为什么服务器会经常停机? 也许更容易确保它始终可用。

如果要检查服务器是否已启动,可以使用Ping()类,在该类中可以根据网络配置轻松定义超时,以假设服务器正在运行。

如果要检查服务器上是否正在运行该服务,可以定义此服务器端的方法:

public bool IsRunning() { return true; } 

并使用try-catch块客户端处理FaultException 。 调用此方法时,它将返回true,否则如果服务关闭则将抛出exception。 您可能还想在调用其方法之前检查客户端WCF代理是否未处于“故障”状态。

没有办法学习这个。 这是一个非常特殊的案例。 如果你确保服务器没有关闭,可以轻松ping这个或者尝试下载一个像text / html文件这样的简单静态文件。 supafly的答案没有错,但它和你一样。