2012-01-12 49 views
2

簡單,因爲...是ServiceBehaviour的命名空間對於Web服務版本控制很重要?這意味着客戶端向服務器的前向/後向兼容性是以任何方式涉及的這個名稱空間?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。誰能幫忙?

+2

我同意downvote沒有留下任何評論 – 2012-01-12 15:30:04

+1

感謝您的同情hugh :) – Learner 2012-01-12 15:39:54

+0

爲什麼不嘗試改變命名空間,看看這是否改變了產生的WSDL?一定要使用wsHttpBinding來最大限度地提高WSDL的複雜性(通過更改命名空間可以更改更大的元素集)。 – 2012-01-12 19:49:29

回答

1

是的,在一些讀數後...

微軟建議使用命名空間來版本數據合同。見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中擁有一致的名稱空間並跟蹤對合同,行爲或數據合同的更改,這似乎很重要。

+0

雖然這是一個很好的鏈接,但並沒有對服務行爲的名稱空間提出任何意見 – Learner 2013-10-28 14:11:57

+0

對不起,您是對的。我有點太快,沒有完全閱讀你的問題。我編輯了答覆。 – robor78 2013-10-28 15:00:57

+0

是的,的確看起來很重要,雖然很難理解...... – Learner 2013-10-29 13:17:38