2013-07-24 44 views
0

我有四個不同的客戶一個WCF Web服務,我們的一位客戶希望有更多的功能,所以我們正在增加,新的OperationContract的,將使用新的DataContracts和一些現有的WCF版本控制 - 添加新的operationContract會導致問題?

  • 現有業務合同或DataContracts不被修改
  • 我們只會增加新OperationContracts和一些新的DataContracts

    1. 會我們所有的客戶必須更新其服務引用? (或不想要新方法的附加功能的客戶,可以繼續使用該服務)

    2. 如果所有客戶端都必須更新他們的服務引用,是否有解決方法? (我想,只有誰想要使用新的OperationContract的客戶,應該更新服務引用)

我們netTcp和basichttp綁定

+0

Google? http://msdn.microsoft.com/en-us/library/ms731060.aspx –

+0

我做了,這是另一個關於在這種情況下有關nettcp綁定的stackoverflow表達式問題..只是我的問題現在回答,謝謝。 –

回答

0

WCF是非常靈活的,當涉及到版本如good MSDN article所示。如果您更改通過MEX終端自動公開的服務合同,則所有客戶都可以訪問新的更改。

如果您想嚴格控制服務公開的合同,那麼您可以關閉MEX端點並將編輯的WSDL(以及適當的XSD,如果不使用singlefile)文件分發給特定的客戶端。 請勿將視爲安全措施,因爲您所做的只是「模糊」了服務支持您揭示的更多操作的事實。

如果確實需要保護不同的合同,那麼您將需要創建單獨的服務以向合法的客戶提供適當的合同。

0

現有客戶不需要更改。根據具體操作的模式,客戶端和服務器之間的合同是soap消息。由於這些操作沒有改變,肥皂是相同的,所以客戶將工作。

相關問題