2011-06-15 82 views
2

我正在尋找版本服務的方式。WCF/WSDL服務版本

到目前爲止,我們已經建立了寬鬆的版本原則。對於次要版本,我們保持向後兼容性。爲了突破變化,我們強制推出新的主要版本。

對於主要版本,我們不介意更改服務的名稱(我們可以更改名稱空間,但是我們已經爲名稱解決了問題)。

對於次要版本,我們不希望更改名稱和名稱空間,因爲這會破壞依賴較舊次要版本的客戶端。

我的問題是:我們如何才能發現如何實現版本發現呢?在WSDL中似乎沒有放置不會破壞合同的「信息」。我想要做的是告訴,對於給定的環境(例如,分期還是生產),目前部署的服務版本是什麼。

WSDL似乎很自然,因爲它可以通過HTTP-GET(REST)訪問,並且不需要引入非業務SOAP服務操作(例如int GetCurrentVersion())。

任何想法?

回答

0

WSDL確實能夠包含用於添加文檔的「wsdl:document」標記,但對於編程式訪問,您可能需要自定義肥皂標題。這blog post顯示如何使用自定義標頭。 WCF Extras code有一些整潔的行爲來執行自定義肥皂標題和wsdl文檔標記。 @marc_s回答this question是另一種方法。

0

WSDL直接沒有任何此類功能,但您可以創建自定義行爲,例如,添加描述合同版本的wsdl:documentation。添加影響WSDL的自定義行爲的描述在my other answer中。操縱wsdl:documentation的完整示例位於MSDN上。