推奨:ASPエラーコレクションASPエラーコレクションは初心者に役立ち、おそらく専門家はそれを忘れるでしょう。 ASPエラーコレクションMicrosoft VBScript Language*エラー(0x800A03E9) - >メモリ不十分なMicrosoft VBScript言語*エラー(0x800A03EA) - >スピーチ*エラーMicrosoft VBScript言語*エラー(0x800A03EA) - >エラーマイクロソフトVBScript言語*
ASPリクエストはWAMオブジェクトによって初期化されます。 WAMオブジェクトは、それをAsp-Runtimeに送信します。 ASP-Runtimeは、内部ページオブジェクトを作成することにより応答します。WAMオブジェクトはフリースレッドオブジェクトです。 ASP.DLLなどのISAPI拡張機能を呼び出すと、IIS-Runtimeによって維持されているスレッドプールによって割り当てられたMTAモデルのスレッドを使用します。
ISAPI拡張機能を作成する際に直面する困難な問題は、このMTAスレッドプールによって引き起こされるスレッドの並行性と同期をどのように処理するかです。 ASP-Runtimeは、ASPスクリプトを実行する前に各ASP要求を単一のスレッドユニット(STA)に切り替えることにより、問題を簡素化します。 ASP-Runtimeは、スタンドアロンのSTAヘルパースレッドプールを管理します(バックグラウンドでは、ASPは実際にCOMスレッドプールを使用してこれを行います)。 ASPデザイナーは、このスレッドプーリングスキームを作成して、同時性とリソース利用の間の最適化されたバランスを提供しながら、プログラマーが同期を実現する必要性を排除しました。
ASP-Runtimeは、各要求をMTAスレッドからSTAスレッドにどのように切り替えますか。 ASP-Runtimeスケジューリングメカニズムは、各要求を中央のリクエストキューに配置します。 ASPモニターによって管理されたスレッドプールのSTAスレッドは、キューを監視し、ファーストインファーストアウトの方法でリクエストを処理します。このスレッドプールのサイズは動的に変更されることに注意してください。 ASP-Runtimeは、ピーク通信中に追加のスレッドを生成し、通信が少ない場合にスレッドをリリースします。
STAスレッドに切り替えると、並行性の問題は効果的に解決されますが、これはパフォーマンスにも大きな影響を与えます。 ISAPI拡張DLLは、別のMTAスレッド中隊で処理されたDLLは、より速い応答時間を提供します。
IISは、STAスレッドプールの最大サイズを設定し、キューを要求する方法を提供します。スレッドプールのサイズは、IISメタデータバーズのAspprocessorThreadmaxプライマリキーによって制御されます。このプライマリキーのデフォルト設定は、プロセスごとのプロセスごとに25です(コメント:この数字を証明するためにMicrosoftの関連ドキュメントを見つけるのが最善です。この数値はCPUごとに10であると言う人もいます)。つまり、4プロセッサコンピューターでは、ASPを処理する各プロセスで最大100個の補助スレッドを持つことができます。チューニングスレッドプールに関連する問題が考慮されていない限り、この重要な値を変更することは避ける必要があります。インターネットサーバーマネージャーを使用してこの設定を変更できないことに注意してください。管理スクリプトまたはVBアプリケーションを使用して変更する必要があります。
IISは、ASPリクエストキューの最大容量を設定します。デフォルトでは、ASP-Runtimeを使用すると、キューは最大3000のリクエストを保持できます(異なるMicrosoftドキュメントでは、このキューは500のリクエストしか保持できないと述べています)。過ぎば、後のエントリASPリクエストは拒否され、エラーメッセージはサーバーが混雑しすぎて返されます。
ASPPROCERSORTHREADMAXプライマリキーとASPREQUESTQUEMAXプライマリキーは、IIS管理オブジェクトとADSIを使用してプログラムできます。たとえば、標準のEXEプロジェクトでは、アクティブなDSタイプライブラリを参照し、次のコードを書きます。
私のwebserverを行動します
mywebserver = getoject(iis:// localhost/w3svc)を設定します
mywebserver.put aspprocessorthreadmax、30
mywebserver.put asprequestquemax、1500
mywebserver.setinfo
以下は、単一のプロセッサコンピューターにデフォルトでインストールされているIISでASPスレッドプールがどのように機能するかについての簡単な要約を示します。このスレッドプールには、各プロセッサで利用可能な25のSTAヘルパースレッドがあります。リクエストが届くと、リクエストキューに配置されます。 ASP-Runtimeは、スレッドプールからアイドルSTAスレッドをスケジュールします。利用可能な場合(このスキームにより、スレッドプールのスレッドがリクエストを処理できるようにします)。フリーヘルパースレッドがない場合、リクエストはキューに追加されます。キューがデフォルトの最大容量に達していない限り、すべての要求が処理されます。
Ted PattisonからのVisual Basic 6.0を使用したプログラミング分散アプリケーション
共有:ASPの技術的機能と使用方法数年前、ダイナミックホームページリリースの業界で唯一のチャネルは、CGI(一般的なGa Tewayインターフェイス)モデルでした。 ISAPI、NSAPI、JDBCなどのその後の技術ソリューションはCGIと比較して改善されていますが、これらのソリューションは依然としてエンタープライズネットワークの技術的現実(イントラネット)から測定されています。