客户怎么知道wcf服务正在运行?

时间:2013-11-23 16:45:53

标签: c# .net wcf

我的服务目前正在运行

localhost:17722/Book.svc

在尝试使用服务之前,我的客户端应用程序如何知道服务是否正在运行?

5 个答案:

答案 0 :(得分:5)

只有某种 ping

但是没有保证,在ping完之后,服务将不会在您的真实请求之前下降

总结:

准备克林以处理死亡服务,故障等

答案 1 :(得分:5)

在使用服务器之前,请不要检查服务器是否已启动。使用服务并处理呼叫期间发生的任何错误。

即使您检查服务是否已启动,它也会在您检查服务已启动和您致电服务之间发生故障。因此,即使你检查它是否已启动,你仍然需要在使用它时将其处理掉。

检查服务是否已启动的最佳方法是尝试使用它。

答案 2 :(得分:4)

我会在这种情况下应用Tell, don't ask的校长。只是尝试执行您打算执行的任何操作,然后在失败时处理异常。

如果没有必要对程序进行操作,为什么您的程序会使用服务?

Hey service, can I invoke your 'X' method? ... no? ... okay, I didn't want to anyway :P

答案 3 :(得分:1)

在您尝试使用该服务(或ping服务器)之前,这是不可能的。从您的客户端应用程序调用您的Web服务就像调用任何其他Web服务一样,在消费之前,您如何知道“google”的Web服务正在运行?

一旦我遇到类似的问题,我只是暴露了一个返回“某事”(例如return true)的操作,我打电话来知道服务器应用程序是否“正常”并且期望“超时”或“不工作时出现500“错误。

答案 4 :(得分:1)

在svc中设置一个返回bool或其他东西的虚方法。然后以指定的间隔在后台线程上点击它。如果请求超时,则可以通过显示表示服务无法访问的内容来处理超时。