C# 如何识别web服务可用性?
我有大约500个web服务。我尝试使用Ping,但它似乎不准确。我已经测试了web客户端并下载到string。我用秒表计算了下载时间。它也不那么准确。确定web服务可用性的最佳方法是什么C# 如何识别web服务可用性?,c#,web-services,wcf,web,repository,C#,Web Services,Wcf,Web,Repository,我有大约500个web服务。我尝试使用Ping,但它似乎不准确。我已经测试了web客户端并下载到string。我用秒表计算了下载时间。它也不那么准确。确定web服务可用性的最佳方法是什么 Stopwatch sw = new Stopwatch(); sw.Start(); pingable = a.IsAddressAvailable(nameOrAddress); sw.Stop(); public bool IsAddressAvailable(string address) {
Stopwatch sw = new Stopwatch();
sw.Start();
pingable = a.IsAddressAvailable(nameOrAddress);
sw.Stop();
public bool IsAddressAvailable(string address)
{
try
{
System.Net.WebClient client = new WebClient();
client.DownloadData(address);
return true;
}
catch
{
return false;
}
}
您可以创建一个返回服务状态的端点。您可以随时调用此特定的Web服务来检查可用性。如果服务器没有对预定的重试次数进行应答,你可以考虑它。
它是一种检查服务器和服务状态的Web服务。您需要考虑设置健康检查策略 取决于要检查的图层: 网络可用性?只要ICMP数据包在途中没有被任何防火墙拒绝,Ping就足够了。也许这不是一个真正有意义的测试 套接字/应用服务器可用性?如果应用服务器上有一个侦听器正在运行,那么简单的重复套接字连接检查(例如,请参阅)是最有效的检查方法。但在某些情况下,如果您的Web服务的http服务器已启动并正在运行,但您的Web服务背后有实例问题(例如数据库问题),则此测试是不够的
功能性可用性?最可靠也是最复杂的策略。您需要a)在Web服务的soap层上实现ping服务,或者b)调用现有的Web服务操作来检查它们的可用性。但是,在调用编写服务时必须小心。要么以幂等方式设计它们(重试/重复请求不会改变任何东西),要么为写入服务准备一些功能无害的无效请求,并针对响应在healtcheck客户端上进行断言。如何检查500个服务的功能的可能重复?我不知道输入。