2010-08-24 40 views
1

我遇到了不幸的情況,那就是按照正常的SOA實踐,我需要使用沒有定義合同的Web服務。這意味着我需要防止中斷Web引用的Web服務中的更改。在過去,突破新Web服務版本的變化(如更改枚舉值)會導致難以調試失敗。以編程方式驗證Web引用與.NET 3.5中的端點匹配

我正在使用Web引用來訪問Web服務。我主要消耗ASMX端點。

防止發生重大更改的明智方法似乎是檢查每個Web服務的端點,確保爲該服務定義的WSDL與當前端點架構匹配。我想在構建時這樣做,也可能在應用程序啓動時執行此操作。優選地,該檢查只會因爲中斷更改而失敗,這意味着向端點模式添加新元素將是可以的。

執行此操作的一種方法是從端點生成臨時WSDL,並驗證現有WSDL中的每個XML元素是否都包含在臨時WSDL中。但是這似乎很煩瑣,我想知道是否有現成的工具,或者更好的方法。

感謝您的幫助和建議。

回答

0

檢查this question - 它被要求提供相同的目的。請注意,服務兼容性是一個棘手的問題,即使比較WSDL也只會意味着您正在防範語法上的變化。沒有辦法檢測服務契約/實現中的語義變化 - 只有正確的方式才能提供版本控制,然後提供方法來查看客戶端是否兼容版本。

+0

啊,所以他們到那裏的答案几乎是我提出的解決方案 - 從端點創建WSDL,並將其與現有的WSDL進行比較。有用的是知道有一個用於比較XML的MS工具。 我同意你對語義變化的評論。但是我處於一個我無能爲力的地位,只能檢查語法變化,並指望測試人員選擇語義變化。我沒有能力影響Web服務的開發。 謝謝。 – SamStephens 2010-08-31 05:27:39

相關問題