asmx Webサービスにリクエストを1つずつ処理させる
-
03-07-2019 - |
質問
「バースト」を受信するASMX Webサービスをデバッグしています。リクエストの。つまり、Webサービスは約1秒または2秒以内に100の非同期リクエストを受信する可能性があります。各リクエストの処理には約1秒かかるようです(これは予想通りで、このパフォーマンスで問題ありません)。ただし、重要なのは、各リクエストが順番に処理され、並列処理が行われないことです。 Webサービスによって呼び出される外部コンポーネントが原因で、同時要求処理が必要ない。 Webサービスが各応答を順番に処理するように強制できる方法はありますか?
machine.configでmaxconnection属性を確認しましたが、これは送信接続に対してのみ機能するようです。ここでは、受信接続を調整したいのです。
この時点では、WCFへのリファクタリングはオプションではないことに注意してください。
Win2003でIIS6を使用しています。
解決
おそらく、リクエストを内部的にキューに入れて、1つずつ処理する必要がありますか?
クライアントが結果をポーリングする場合があります(必要な場合でも)が、必要なシーケンシャルパイプラインを取得できます...
他のヒント
IIS7では、Webサイトに許可される接続の制限を設定できます。 IIS7を使用できますか?
過去に行ったことは、使用していた外部リソースへのアクセスをロックステートメントで囲むことです。私の場合、それはスレッドセーフであると主張するアンマネージコードの一部でしたが、実際には一度に複数のスレッドからアクセスされた場合、Cランタイムライブラリのヒープを破壊します。
所属していません StackOverflow