ServiceBehaviour的名称空间对Web服务版本控制很重要吗?

时间:2012-01-12 14:50:50

标签: wcf web-services namespaces versioning servicebehavior

简单,因为...... ServiceBehaviour的命名空间对Web服务版本控制很重要?这意味着客户端与服务器的向前/向后兼容性是否以任何方式涉及此命名空间?

我真的不明白这个特定命名空间及其用途是什么。有人可以为此加油吗?

谢谢!

EDIT1 :在我的调查之后,这个命名空间出现在第一行的WSDL中:<wsdl:definitions name="SvcTest" targetNamespace="api.company.com/Services/Tester"> ...但我不知道这是否会影响版本控制..也许我是盲人或错过了什么。或许我太担心了...为什么我会在这里添加一些日期(<wsdl:definitions name="SvcTest" targetNamespace="api.company.com/Services/Tester/2012/01">)?

EDIT2 :我找到了此链接,但指向另一个不再可用的位置:http://social.msdn.microsoft.com/Forums/en/wcf/thread/66c19783-6675-4bd7-83c1-2140d00a943e。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

是的,经过一些阅读...

Microsoft建议使用命名空间来版本化数据协定。见Best Practices: Data Contract Versioning

  

虽然在这些示例中名称已更改(通过附加“2”),但建议通过附加带有版本号或日期的新名称空间来更改名称空间而不是名称。例如,http://schemas.contoso.com/2005/05/21/PurchaseOrder数据合同将更改为http://schemas.contoso.com/2005/10/14/PurchaseOrder数据合同。

命名空间可以在不同的地方设置(ServiceContractAttribute,ServiceBehaviorAttribute,DataContractAttribute,参见WCF service namespaces)。

要在WSDL中拥有一致的命名空间并跟踪合同,行为或数据合同的变化,这似乎很重要。