我有三个WCF服务(.svc),它们为SOAP消息生成.wsdl引用。WCF版本控制:更新属性名称空间和支持Previous命名空间
鉴于该命名空间的一部分需要,DataContract属性,更改所有的ServiceContract,OperationContract的例如
[DataContract(Namespace = "http://old.com.au/types/")]
到
[DataContract(Namespace = "http://new.com.au/types/")]
它怎么说,我还是能为客户提供支持其有旧的服务引用(没有他们需要更新,因为他们可能没有时间立即更新),并允许客户端获得新的服务引用来获得新的名称空间?没有任何服务正在改变,只是命名空间。
到目前为止,我已经读了很多的东西,但下面的文章表明,它是可以从ServiceHostFactory更改服务类型:http://blog.ranamauro.com/2008/07/hosting-wcf-service-on-iis-site-with_25.html
这意味着创造的每两份合同(把尽可能多的尽可能在一个地方实现),并在运行时找出要使用的服务类型。这会在我的场景中造成一些混乱。
问:是否有另一种方法可以完成此任务,或者是否应该完成此类任务,并且客户端要更新到新的名称空间。
(如果有来自客户机的命名空间不匹配我的错误:用行动消息“...”不能在接收器进行处理,由于ContractFilter不匹配)
谢谢你会试用 – CRice 2010-08-19 07:06:22
+1我也会采取这种方法。 – 2010-08-19 07:41:19
有一个问题,如果我有每个datacontract 2比我需要在许多实现中翻倍...旧服务返回一个ClassA我现在需要一个新的serivce和方法,它返回一个ClassB但它是相同的如果我想分享现有功能的一部分,我必须映射返回ClassA作为ClassB的内部方法的返回类型。 – CRice 2010-08-20 00:46:57