2011-07-12 8 views
0

私はASP.NET Webサービスを呼び出すASP.NET Webサイトを持っています。
再送信されたSOAPメッセージを検出するにはどうすればよいですか?これは、アプリケーションとサービスが.NETと同じサーバーにある場合、私は心配する必要がありますか?再送信されたSOAPメッセージの検出

.NETはプロキシを作成してSOAPの詳細を処理するので、再送信されたSOAPメッセージをどのように検出できますか?

+0

通常、SOAPメッセージは再送信されません。 –

答えて

0

私はASP.NETの仕様には言えませんが、この分野で役立ついくつかの「魔法」があるかもしれませんが、一般的に、Webサービスは、巧妙性がない限り、要求を複製するために弾力性を持たせるように設計する必要があります。インフラ

いくつかのシナリオがあります。

Webアプリケーションは、サービスの呼び出しを行います。応答が一定の時間内に来ない場合、インフラストラクチャは再試行を試みますか?私はASP.NETがここで何をしているのかわかりませんが、私の推測は「いいえ」ですが、それは非常に推測です。同じようにWebアプリケーション自体が再試行を選択する可能性があります。いずれの場合も、同じリクエストが2回送信される可能性があります。重複要求を検出する責任はサーバーにあります。リクエストに固有のラベルが含まれていると、これは非常に簡単です。

第2のシナリオは、「困ったユーザー」のシナリオです。ユーザーが送信を頻繁に行うとヒットします。うまく設計されたWebアプリケーションはこれを防ぐか、これを検出し、Webサービスを再送信しません。この場合、サービスに重複は見られません。

もっと難しいシナリオは、「あなたは本当に2つのロールスロイスを買ったのですか?顧客はリクエストを提出し、それが価値の高いリクエストであるとふりましょう。その後、コンピュータがクラッシュするか、接続が失われます。後で、たぶん別のコンピュータからでも、ユーザーは同じ購入を試み、最初に実際に働いたことを認識しません。今はそれを見つけるのは難しいですし、多くのベンダーも試していませんが、重大なパターンマッチングで重複した検出を行う、本当に巧妙なサービスを作る必要があるシナリオがあります。 。

関連する問題