別の Windows サービスで実行されているリモーティング シングルトン サーバーがあります (彼女を RemotingService と呼びましょう)。RemotingService のクライアントは ASP.NET インスタンス (多数) です。
現在、リモート クライアントは RemotingService を呼び出し、RemotingService 呼び出しが処理されている間はブロックします。ただし、リモーティング サービスは非常に複雑になり (より多くの RPC 呼び出しと複雑なアルゴリズムを使用)、asp.net ワーカー スレッドが非常に長い時間 (4 ~ 5 秒) ブロックされます。
この msdn articleによると、リモート RPC ごとに asp.net ワーカー スレッドがブロックされるため、これを行うとうまくスケーリングされません。非同期ハンドラーに切り替えて、asp.net ワーカー スレッドを解放することをお勧めします。
非同期ハンドラーの目的は、ハンドラーが元の要求を処理している間に、ASP.NET スレッド プール スレッドを解放して追加の要求を処理できるようにすることです。
これは問題ないように見えますが、リモート処理の呼び出しが依然としてスレッド プールからスレッドを使用しています。これは、asp.net ワーカー スレッドと同じスレッド プールですか?
asp.net ワーカー スレッドを解放するために、リモート シングルトン サーバーを非同期システムに変えるにはどうすればよいですか?
いくつかの重要な情報を見逃している可能性があります。質問に答えるために他に知っておくべきことがあれば教えてください。