2012-03-16 22 views
0

私たちはサードパーティのWebサービスに依存しており、このWebサービスがそのベンダから呼び出せる3つのURLが与えられています。何らかの種類の初歩的なフェイルオーバー・ロジックを実装したいので、1つのURLが機能しない場合は、他のURLを試してみてください。ベンダー自身はこれを行わず、アプリケーション・コード内で実行します。.NET WebサービスのURLを動的に変更して保持する方法

"デフォルト"のURLはプロジェクトの設定ファイルに保存されており、アプリケーションのさまざまな部分がそれを使用します。フェイルオーバーを実装するには、使用しているURL(私のリスト内の最初のURLが正常に接続されている)を更新する必要があります。は、アプリケーション全体のURLを維持して、特定の要求に対してのみ設定するのではなく、理想的な状況では、このURLは頻繁に変更されることはありませんが、1つのURLがダウンしている場合は、新しいURLを使用するように動的に変更する必要があります。古いURLがバックアップされています(私は理に適っていることを望みます)。

これを行う簡単な方法はありますか、またはWebサービスが呼び出されているメソッドにチェックロジックを追加するだけですか?

+0

3つのURLがすべて同じサーバーに解決されるわけではありませんか? –

+0

私たちの言うとおり、彼らは3つの別々のサーバーです。基本的に 'server1.example.com/ws'、' server2.example.com/ws'、 'server3.example.com/ws'のように、' server.example.com/ws'が1つを指していますそれらのうちのいずれかを指定します。問題が指摘しているものがダウンしている場合、私たちは固執しているので、自分自身をチェックしたいと思います。たとえば、server1はダウンしていますが、server2は稼動していますが、 "server.example.com/ws" "server1.example.com/ws" –

+0

だから、決して 'server.example.com/ws'を返信することはありませんか?それは意味をなさない。フェールオーバーではない場合、なぜその中間名を使用するのですか? –

答えて

1

あなたはここで懸念を混ぜています。私にとって、あなたのアプリケーションはフェールオーバーロジックをまったく実装すべきではありません。むしろ私はあなたのアプリが話しているローカルWebサービスプロキシを実装して実装します。このプロキシは、ターゲットWebサービスのフェイルオーバーとローテーションを担当するコンポーネントになります。

Your App ---> Proxy WS ---> The Internets ---> Target WS #1 
              +-> Target WS #2 
              +-> Target WS #3 
関連する問題