题
感谢您的帮助。
我正在为外部客户端创建一个wcf Web服务。 客户端正在请求wsdl的副本。 我目前正在等待能够为客户提供对服务的访问权。
当我转到运行该服务的本地网络服务器时( http://localhost/Services.svc?wsdl )我被告知了 wsdl,提供的数据包含方法签名(来自后面的.svc代码), 但不包含所包含的模型对象(Customer,Order,ext)。
要获取这些对象,我可以在显示的数据中找到引用并转到URL
让我向客户提供所有需要的信息,以便他们拥有整个wsdl 我应该提供主模式以及每个导入的模式吗?
还是有其他方法可以完成此任务(其他方式是客户端点击服务器)
ie:有没有办法将所有这些包装在一个文件中?
(看起来有些东西可用于提取每个文件?)
如果我要给每个文件一个.zip,那就够了吗?
谢谢, 史蒂文
解决方案
正如您已经注意到的那样,WCF将其WSDL和XSD(用于描述正在发送的数据的XML模式)打包成各个部分。这些是从您的主WSDL引用的,带有额外的href。
甚至更好:您可以运行“svcutil -metadata”;在命令行上命令对包含您的服务实现的DLL或EXE - 这将在您运行svcutil命令的目录中创建所有需要的文件(通常是几个WSDl和几个XSD)。这通常是比从wsdl URL拼凑WSDL和XSD文件更可靠的方式(通常最终会丢失一个或两个文件)。
马克
其他提示
如果您手动下载了引用的每个子WSDL和XSD,那么是的,它会起作用;但至少可以说它很麻烦。
值得研究的选择是使用Christian Weyer的 WCF扩展用于展平您的WSDL,以便WCF在单个文件中生成所有内容,然后将其提供给您的客户端。