2010-11-18 13 views
8

第三者のWebサービスにリクエストするページがあります。負荷が重い場合、この応答時間は大幅に延長されますが、第3党は処理時間が一定であることを報告しています。時間が到来すると、リクエストを受信して​​から返信するまでの時間は、常に1.5〜2.0秒程度です。今我々は20秒以上の待ち時間を経験している。私のASP.NETの理解は、各要求がIISスレッドプールスレッド上で実行され、3'rdパーティサービスへの要求を返す処理です。だから私は私たちの最後に何が妨げられているのか本当に理解していない。私は行方不明のものがありますか?ブロックされているIIS以外のしきい値はありますか?同じWebサービスブロッキングへの複数の呼び出し?

もし私が何かを見逃しているなら、この主題をカバーする物理的な本の推薦は、どんな答えにも非常に歓迎されるでしょう。

+0

はありませんページはクライアント側またはサーバー側から要求を行いますか? –

+0

それはサーバー側から要求を出しますが、それは重要ですか? :) –

+0

+1良い質問 – PRR

答えて

9

.NETの制限では、HTTP仕様で提案されているように、1つのホストに対して2つの同時Web要求が制限されています。したがって、あなたのケースでは、実行に時間がかかるWebサービスではなく、アプリケーションがこの制約内にとどまる要求を遅らせることになります。

あなたの設定ファイルにこのキーを追加することにより、Webサービスの上限を引き上げることができます。

<system.net> 
    <connectionManagement> 
     <!-- specific servers... --> 
     <add address="http://example.org" maxconnection="20" /> 

     <!-- ...or any server --> 
     <add address="*" maxconnection="8" /> 
    </connectionManagement> 
    </system.net> 
+0

これは、サーバー側の同じスレッドがリクエストを行っている場合にのみ該当します。複数のユーザー、つまり複数のasp.netセッションが存在する場合、それらはそれぞれ独自のスレッドにあり、これらの制限はありません。右? –

+0

@Mike、それは当てはまりません。この制限は、同じアプリケーションプールで実行されているASP.NETの場合でも、プロセス内のすべてのスレッドに影響します。 – realMarkusSchmidt

+0

うわー、それを知らなかった。 –