我的客户已经指定了一个WSDL文件作为我必须实现的Web服务的契约。 (它确实必须是WSDL文件,因为它已经被传递给其他合作伙伴等等,并且他们也将基于该WSDL实现他们自己的Web服务和客户端,它是一个63 KB的WSDL文件。)WSDL.exe不是往返?
使用wsdl.exe我创建了服务器端的代理类。所以我可以实现Web服务。 但是:如果使用wsdl.exe创建基于原始WSDL文件的客户端代理类,那么会导致客户端应用程序无法与Web服务通信!
INSTEAD:通过向Web服务URL添加“?wsdl”,我得到另一个WSDL文件。当使用第二个WSDL文件来创建客户端代理类时,则会导致客户端应用程序完全能够与Web服务进行通信。奇怪的是,第二个WSDL文件的大小为288 KB,而不是原始WSDL文件的63 KB。
因此,这应该意味着WSDL不是往返...(WSDL文件 - > wsdl.exe创建服务器端代理类 - > web服务 - >将“?wsdl”添加到Web服务URL - >结果另一个WSDL文件为原始文件(更糟糕的是:它们不兼容)。)
任何人都可以解释这一点吗? (对于我的项目来说很重要,因为其他方将使用原始WSDL文件,因此它们将无法与我的Web服务进行通信......)
我使用C#以及CLI 。它是可重复的。我正在使用IIS 7.5和.NET框架3.5。
更好地发布命令行设置,以及生成的C和S不匹配的示例。比较文件大小是没有意义的。 –