【发布时间】:2012-08-19 02:38:50
【问题描述】:
我需要创建一个 C# 应用程序来监控一组 Web 服务是否启动并运行。用户将从下拉列表中选择服务名称。程序需要用对应的服务 URL 进行测试,并显示服务是否在运行。最好的方法是什么?我正在考虑的一种方法是测试我们是否能够下载 wsdl。有没有更好的办法?
注意:此应用程序的目的是用户只需要知道服务名称。他不需要记住/存储服务的相应 URL。
我需要此 C# 应用程序的网站版本和桌面应用程序版本。
注意:现有服务正在使用 WCF。但将来可能会添加非 WCF 服务。
注意:我的程序不会知道(或不感兴趣)服务中的操作。所以我不能调用服务操作。
参考
【问题讨论】:
-
这些将被监控的服务是预先配置好的,对吧?我的意思是,这是一个通用的 Web 服务监控工具吗?
-
下载 WSDL 将验证 site 是否正在运行,但不会告诉您 Web 服务的依赖项(数据库、引用等)是否已关闭或丢失.
-
我通常会向我的服务添加一个
Version方法,该方法只从该服务返回一个“版本字符串”——如果它已启动并正在运行。但实际上:这并不能告诉你任何事情......你的调用现在 - 但不能保证一纳秒后它仍然可以工作......你只需要编程防御性并随时准备服务调用可能会失败或超时或其他任何事情...... -
“启动并运行”的定义是什么?一个 HTTP 200 状态代码很好地意味着后端数据库仍然崩溃。
-
我相信您可以禁用 WSDL 的下载,所以这可能不是最好的方法。如果我错了,请有人纠正我。
标签: c# asp.net .net wcf web-services