Windows system >> Windowsの知識 >  >> コンピュータソフトウェアのチュートリアル >> サーバー技術 >> サーバーについて >> IIS WebサーバーがASP.NET要求を処理する方法を説明する(図)

IIS WebサーバーがASP.NET要求を処理する方法を説明する(図)

  

サーバーが要求を受信するたびに、IISによって処理される必要があります。これはasp.netのライフサイクルを説明する記事ではなく、単なるIISの操作に関するものです。始める前に、これらを理解することは全文を理解するのに役立ち、フィードバックと提案を歓迎します。

Webサーバーとは何ですか?

VSを介してASP.NETを実行するときはいつでも、VSに統合されたASP.NETエンジンがさまざまな要求に応答します。このエンジンの名前は' WebDevです。 .WebServer.exe'。

Webアプリケーションを設定するとき、常に「Webサーバー」という言葉があります。これは、すべての要求に応答するように設計されています。

IISは何ですか?

IIS(Internet Information Serverの)ASP.NETサイトを構成するために使用されるMicrosoftのWebサーバー、です。 IISには、要求を処理するための独自のASP.NET処理エンジンがあるため、要求が到着すると、IISはその要求を受信して​​処理してからコンテンツを返します。

リクエスト処理

さて、あなたはWebサーバーとIISとの違いを把握することができるはずです。それでは、コア部分を見てみましょう。先に進む前に、2つの概念を理解する必要があります。

1.ワーカープロセス

2.アプリケーションプール

ワークプロセス: IISでは、ワーカープロセス(w3wp.exe)は、すべての要求を管理および応答するASP.NETアプリケーションを実行し、すべてのASP.NET関数はそのワーカープロセスの下で実行されます。応答関連情報要するに、ワークプロセスはASP.NETプログラムの中心です。

アプリケーションプール:アプリケーションプールはワーカープロセスのコンテナであり、通常は異なる構成のワークプロセスを分けるために使用されます。プログラムが失敗したり、プロセスリソースが回収されたりしても、他のプール内のプログラムは影響を受けません。

注:複数のワーカープロセスが含まれているアプリケーションプールが、呼ば'ウェブガーデン'。

IIS 6.0の構造を見ると、2つの部分に分けられることがわかります。

1、カーネルモード

2、ユーザーモジュール(ユーザーモード)

カーネルモードはIIS 6.0から導入されたもので、HTTP.SYSという名前のファイルが含まれており、要求が来るたびにファイルの応答を開始します。

HTTP.SYSファイルが着信要求に適切なアプリケーションプールを担当しています。 HTTP.SYSはどのアプリケーションプールに渡すべきかをどのように判断しますか?もちろん、ランダムに抽出されるわけではなく、アプリケーションプールが作成されるたびにプールのIDが生成され、HTTP.SYSファイルに登録されます。どこに渡すかを要求します。
ログイン

上記の要求を処理するIISの最初のステップです。次に、要求がHTTP.SYSからアプリケーションプールにどのように渡されるかを見てみましょう。

IISユーザーモジュールでは、Web管理サービス(WAS)を介してHTTP.SYSから要求が受信され、適切なアプリケーションプールに渡されます。 URLサフィックスアプリケーションプールが要求を受信すると

、それはその後、ワーカープロセス(w3wp.exeの)に渡され、プロセスがISAPI拡張がロードされているかを決定するための要求を確認します。 ASP.NETには、IISでマッピングするための独自のISAPI拡張機能(aspnet_isapi.dll)が付属しています。

注:asp.netをインストールしてからIISをインストールした場合は、aspnet_regiisコマンドを使用してASP.NETにISAPIエクステンションを登録する必要があります。

するAspnet_isapi.dllは、一度の作業プロセスをロードし、それはアプリケーション、processRequestメソッドによる処理要求を開始のhttpRuntimeクラスを作成します。このメソッドが呼び出されると
ログイン

のHttpContextのインスタンスが生じます。このインスタンスはHTTPContent.Currentを介して取得することができ、インスタンスはライフサイクル全体を通して生き残り、それを通して、Request、Response、Sessionなどの一般的なオブジェクトを取得できます。

のhttpRuntime後HttpApplicationFactoryクラスでのHttpApplicationオブジェクトをロードします。それぞれの要求は、応答されるためにHttpHandlerへのHttpモジュールの束を通過します。これらのHttpModuleはHttpApplicationで設定されています。

Pipelineと呼ばれる" Http Pipeline"と呼ばれる概念があります。これには、リクエストをインターセプトして対応するHttpHandlerに転送する一連のHttpModuleが含まれているためです。 HttpModuleをカスタマイズしてリクエストレスポンス間で特別な処理をすることもできます。

のHttpHandlerで'のHttpコンジット'終わり。 HttpModuleを通過するすべての要求は、対応するHttpHandlerに到達する必要があります。その後、HttpHandlerは要求されたリソースに従ってコンテンツを生成して出力します。このため、応答するHTMLコンテンツを取得するために任意のaspxページをリクエストします。 Webサーバ上の
ログイン

結論

たびに特定の情報Http.sysの、Http.sysの適切なアプリケーションプールに送信最初に到着要求アプリケーションプールはワーカープロセスに渡され、ISAPIエクステンションがロードされます。その後、HttpRuntimeオブジェクトが作成され、HttpModuleとHttpHandlerを介して要求が処理されます。

最後に、ASP.NETページのライフサイクルが始まります。

Copyright © Windowsの知識 All Rights Reserved