我有一个包含多个服务的.NET服务器端项目。每个服务的处理与各自己的一套方法,但是这些方法共享相同的类型:在服务器端共享相同类型的多个WCF服务共享相同的XSD架构
- Customer.svc包含的方法如GETCUSTOMER,它返回客户(包括客户的地址)数据
- 订单.SVC包含的方法如Getorder返回有关订单数据(包括送货地址)
当我访问Customer.svc?WSDL和Order.svc?WSDL他们每个人引用了自己的XSD文件和地址类型在它们中被定义。
因此,如果外部客户端引用两个端点,他将得到两个不同的包含相同类型的XSD文件。
问题:如何强制WCF到共享类型/ XSD之间的WSDLs(在服务器端!)。请不要问我如何在客户端上共享类型(这可以通过svcutil/reference switch来实现)。
谢谢。我使用IIS作为主机。由于其他要求,我们使用代码优先方法*而不是模式优先(。手工制作XSD和WDSL,并且使用externalMetaDataLocation是不可接受的。我通过实现IWsdlExportExtension来实现它,使用WsdlExporter收集所有模式,修复在XSD中导入WSDL中的引用,并实现自定义IHTTPHandler以从单个位置提供服务XSD。 – matra