2012-10-12 34 views
3

開發過程中考慮以下情形 -檢測過時的WCF服務引用代理

  1. 我們改變WCF服務合同非常頻繁。
  2. 有一個Web應用程序使用這些服務。
  3. 我們在Web應用程序中經常更新服務引用。

但是當我們忘記這麼做的時候,我們必須調試我們的整個web應用程序,最終發現服務合同已經發生了變化。

我們能否在調用服務之前在運行時檢測到過時的代理?

回答

2

最佳做法是將您的服務版本化,以允許客戶端連接其熟悉的界面。通常情況下,您可以在線保留一兩個舊版本,並將任何重大更改添加爲服務的最新版本。 (例如​​,然後/myservice/2012/06)。然後,隨着新版本的創建,您可以棄用以前的版本。

第二種做法是實施GetVersion()(或類似的)方法,您可以調用並用於測試目的。對服務進行初始調用並查看它正在運行的情況,然後根據本地存儲的版本號進行測試,並查看是否存在衝突。

有關這方面的更多詳細信息,Yoav Helfman有一篇很好的文章,用於處理版本更改和更新。

1

我發佈了關於這種東西before

實質上,管理這種情況的一種方法是要求服務使用者聲明他們期望的每個請求的服務接口的版本。

然後在您的服務上公開一個類型的錯誤合約,這將允許您確定發生了服務版本不匹配。這意味着消費者可以相應地捕捉並處理這個特定的問題。