我正在使用一些传统的.asmx文件。我需要比较位于服务器A中的Web服务的WSDL是否与服务器B中的WSDL完全相同。
这里的问题是,当我将?wsdl 作为XML并执行比较(使用WinMerge或C#代码)时,两个文件将会不同。
例如,如果您查看此WSDL文件:http://www.webservicex.net/globalweather.asmx?wsdl,您将在WSDL中找到属于此服务器的一些信息:
<wsdl:service name="GlobalWeather">
<wsdl:port name="GlobalWeatherSoap" binding="tns:GlobalWeatherSoap">
<soap:address location="http://www.webservicex.net/globalweather.asmx"/>
</wsdl:port>
<wsdl:port name="GlobalWeatherSoap12" binding="tns:GlobalWeatherSoap12">
<soap12:address location="http://www.webservicex.net/globalweather.asmx"/>
</wsdl:port>
<wsdl:port name="GlobalWeatherHttpGet" binding="tns:GlobalWeatherHttpGet">
<http:address location="http://www.webservicex.net/globalweather.asmx"/>
</wsdl:port>
<wsdl:port name="GlobalWeatherHttpPost" binding="tns:GlobalWeatherHttpPost">
<http:address location="http://www.webservicex.net/globalweather.asmx"/>
</wsdl:port>
</wsdl:service>
因此服务器之间的位置会有所不同。
您知道实现此任务的任何方法吗?是的,理想情况下,我希望通过C#代码,从两个服务器获取WSDL并进行比较。