すでにお気づきかもしれませんが、あなたの問題は多くの人にとって大きな問題です。「べき等」と「webservice」を調べてください。冪等性とは、要求/応答を保証できるということだけではありませんが、検索を行うと、読むべき多くの優れた情報が得られます。
「長時間応答を停止する」というのが、めったに呼び出されない数秒を意味する場合、DarkWanderer はそのような問題に対するかなり力ずくの解決策を示しました。
しかし、多くの呼び出しがある場合、スリープは作業スレッドを食い尽くす可能性があるため、何らかのキューに依存する必要があります。
呼び出しが非トランザクションで重要でない場合は、独自のキューイング メカニズムをコーディングできます。これは簡単に思えるかもしれませんが、スレッド化、複雑なコールバック、ロギング、アクティブなエラー処理などが必要になる場合があります。多くの可哀想な魂は、単純な解決策として始まったものがメンテナンスの悪夢に変わったと報告しています。
そして今、あなたの要件の 1 つは、アプリ プールのリサイクルに耐えなければならないということであることがわかりました。次に、クリティカル (およびおそらくトランザクション) キューイングの最後のカテゴリに入ります。
最初から MSMQ をお勧めする理由。それはすべての問題を処理し、API は .net にあり、最近は非常に優れています。はい、ソリューション全体に複雑さが加わりますが、それは問題のドメインに起因します。