我的客户端托管了一些 Web 服务并具有 ASP.NET 网页,这些网页将演示 Web 服务并作为快速检查来验证客户端是否启动了 Web 服务。问题是 WSDL 可能丢失或无效,但 Web 服务仍然可以工作。
我想添加到 ASP.NET Web 服务客户端的是一种验证 WSDL 是否存在且有效但不知道从哪里开始的方法。任何建议将不胜感激!后面的代码是 C#
我不确定您的意思是验证 WSDL 是否有效。我唯一可以建议的是,HttpWebRequest
在特定的 URI 上使用 an 并查看您得到的响应,然后根据特定的状态代码(例如 404)抛出异常或以不同的方式处理它。
您可以获取状态码值
var request = (HttpWebRequest) WebRequest.Create("http://example.com/service.wsdl");
using (var r = (HttpWebResponse) request.GetResponse())
{
var result = r.StatusCode.ToString() == 200.ToString() ? "Success" : "Service not found";
Debug.WriteLine(result);
}
希望这有帮助,祝你好运。
编辑:如果您知道要测试哪些服务,您可以简单地将它们作为服务引用添加到您的客户端项目中,并尝试对服务方法执行 RPC 以查看它是否可用。下面的图片显示添加服务参考。
你的场景并不完全有意义。您可以向服务 WSDL 端点发出请求,http://something/service.asmx?wsdl
并且可以确认返回的是 WSDL 文件。您甚至可以根据 WSDL 和 XSD 模式对其进行验证。
这不会告诉您它是否是代表服务的 WSDL。可以想象,它可能是一些完全不同的服务的 WSDL。
也许更重要的是,您是否遇到过服务可用但 WSDL 不可用的问题?在这种情况下,我建议您解决问题,而不是创建诊断程序。