2

リクエストの「バースト」を受信する ASMX Web サービスをデバッグしています。つまり、Web サービスが約 1 ~ 2 秒以内に 100 個の非同期要求を受け取る可能性があります。各リクエストの処理には約 1 秒かかるようです (これは想定内であり、このパフォーマンスで問題ありません)。ただし、重要なことは、各リクエストが順次処理され、並列処理が行われないことです。Web サービスによって呼び出される外部コンポーネントのために、同時要求処理は必要ありません。Web サービスが各応答のみを順番に処理するように強制する方法はありますか?

machine.config で maxconnection 属性を確認しましたが、これは送信接続に対してのみ機能するようで、受信接続を調整したい場合にのみ機能します。

現時点では、WCF へのリファクタリングはオプションではないことに注意してください。

Win2003でIIS6を使用しています。

4

3 に答える 3

1

私が過去に行ったことは、使用していた外部リソースへのアクセスを単純に lock ステートメントで囲むことでした。私の場合、これはスレッド セーフであると主張するアンマネージ コードの一部でしたが、実際には一度に複数のスレッドからアクセスされると C ランタイム ライブラリ ヒープを破棄してしまいます。

于 2009-06-01T13:09:14.703 に答える
0

おそらく、リクエストを内部でキューに入れて、1つずつ処理する必要がありますか?

クライアントが結果をポーリングする可能性がありますが(必要な場合でも)、必要なシーケンシャルパイプラインを取得できます...

于 2009-05-01T07:29:59.360 に答える
0

IIS7では、Webサイトに許可される接続の制限を設定できます。IIS7を使用できますか?

于 2009-05-01T07:36:55.083 に答える