開発中に次のシナリオを検討してください-
- WCFサービス契約は頻繁に変更されます。
- これらのサービスを利用するWebアプリケーションがあります。
- Webアプリケーションでは、頻繁に更新、サービス参照を行っています。
しかし、これを忘れた場合は、Webアプリケーション全体をデバッグする必要があり、最終的にサービス契約が変更されたことを確認します。
サービスを呼び出す前に、実行時に古いプロキシを検出できますか?
開発中に次のシナリオを検討してください-
しかし、これを忘れた場合は、Webアプリケーション全体をデバッグする必要があり、最終的にサービス契約が変更されたことを確認します。
サービスを呼び出す前に、実行時に古いプロキシを検出できますか?
ベストプラクティスは、クライアントが使い慣れたインターフェイスに接続できるようにサービスをバージョン管理することです。通常、1つまたは2つのバージョンをオンラインで保持し、重大な変更をアップレブとしてサービスに追加します。(例:/myservice/2012/01
その後/myservice/2012/06
)。次に、新しいバージョンが作成されると、以前のバージョンを廃止できます。
GetVersion()
2番目の方法は、テスト目的で呼び出して使用できる(または同様の)メソッドを実装することです。サービスを最初に呼び出して実行内容を確認してから、ローカルに保存されているバージョン番号と照合して、競合が存在するかどうかを確認します。
これについての詳細は、バージョンの変更と更新の処理について説明しているYoavHelfmanによる優れた記事があります。
私は以前にこの種のことについて投稿しました。
基本的に、この状況を管理する1つの方法は、サービスコンシューマーに、要求ごとに期待するサービスインターフェイスのバージョンを宣言するように要求することです。
次に、サービスバージョンの不一致が発生したことを識別できるタイプのサービスのフォールトコントラクトを公開します。これは、消費者がこの特定の問題を見つけてそれに応じて処理できることを意味します。