2

很简单,因为...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。有人可以帮忙吗?

4

1 回答 1

1

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

Microsoft 建议使用命名空间来版本数据协定。请参阅最佳实践:数据合同版本控制

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

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

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

于 2013-10-28T13:00:15.510 回答