我想通过C#代码检查WCF Web服务ic服务的可用性是上升还是下降.怎么实现呢?
当你调用Client.Open
它时,它应该抛出一个可以捕获的异常.
我更喜欢做的是实现一个返回一个名为Ping的布尔值的方法.代码基本上只是return true;
这样,它尽可能快地返回.在客户端我调用它并捕获异常,如果我得到任何,那么我知道Web服务已关闭.
您可以扩展模式以执行PingCheckDB或PingCheckX等可以执行假/样本测试运行的操作,以便根据可用的内容启用/禁用客户端上的功能.
详细说明上一个答案:确定服务是否"可用"的唯一方法是首先确定"可用"的含义.例如,依赖于外部资源(如数据库)的服务可能完全可用,但如果无法访问数据库,则该服务将可用但无用.
您还应该询问您将如何处理有关可用性的信息.特别是,如果您确定该服务"可用"会发生什么,当您调用它时,您会发现它并非真正"可用".例如,如果上述服务可用且数据库可用,但有一个特定的存储过程总是会失败.在这种情况下,服务"可用"吗?如果你表明它可用,但是这个存储过程失败了会有多糟糕?
在许多情况下,最好只需继续调用Web服务,然后处理任何异常.如果您已验证了要发送给服务的参数,那么从最终用户的角度来看,服务的任何故障都会导致服务不可用.
你知道,它无法成功使用.