次のテキストは、私が読んでいる 'MCTS Self-Pacedトレーニングキット(Exam 70-515)のASPからのWebアプリケーション開発です.NET 4" 。これは、アプリケーションライフサイクルのランダウンを与える。ASP.NETアプリケーションレベル対セッションレベルとGlobal.asax ...混乱
- ユーザーが最初にサイト内のページを要求する。
- 要求を転送し、処理パイプラインに送られます
- ASP.NETランタイムは、ApplicationManagerクラスのインスタンスを作成します。このクラスインスタンスは、 eアプリケーションの要求を実行するために使用される.NET Frameworkドメイン。アプリケーションドメインは、グローバル変数を他のアプリケーションから隔離し、必要に応じて、各アプリケーションを個別にロードおよびアンロードすることを許可します。
- アプリケーションドメインが作成されると、HostingEnvironmentクラスのインスタンスが作成されます。このクラスは、ディレクトリフォルダーなど、ホスティング環境内のアイテムへのアクセスを提供します。
- ASP.NETは、要求を処理するために使用されるコアオブジェクトのインスタンスを作成します。これには、HttpContext、HttpRequest、およびHttpResponseオブジェクトが含まれます。
- ASP.NETは、HttpApplicationクラスのインスタンスを作成します(またはインスタンスが再利用されます)。このクラスは、サイトのGlobal.asaxファイルの基本クラスです。このクラスを使用すると、アプリケーションの起動時または停止時に発生するイベントをトラップできます。 ASP.NETがHttpApplicationのインスタンスを作成すると、SessionStateModuleなど、アプリケーション用に構成されたモジュールも作成されます。
- 最後に、ASP.NETプロセスは、HttpApplicationピードラインを通じて要求を処理します。このパイプラインには、要求の検証、URLのマッピング、キャッシュへのアクセスなどの一連のイベントも含まれています。アプリケーションが起動しない場合
<script runat="server"> void Application_Start(object sender, EventArgs e) { Application["UsersOnline"] = 0; } void Session_Start(object sender, EventArgs e) { Application.Lock(); Application["UsersOnline"] = (int)Application["UsersOnline"] + 1; Application.UnLock(); } void Session_End(object sender, EventArgs e) { Application.Lock(); Application["UsersOnline"] = (int)Application["UsersOnline"] - 1; Application.UnLock(); } </script>
:
ブックは、Global.asaxファイルの使用例を実証しましたか?セッションとアプリケーションレベルの違いは何ですか?私はむしろこれがどのように管理されているのか混乱しています。私は、アプリケーションレベルのクラスがAppDomainオブジェクトの「上に座って」いると思っていました.AppDomainには、そのユーザーのセッションに固有の情報が含まれていました。誰かがIISでApplicaitonレベルのクラスを管理する方法と、HttpApplicationクラスがAppDomainの下にどのように置かれているか説明してください。何でも感謝します。
関連:http://stackoverflow.com/questions/951137/asp-net-session-life-time-issue and http://stackoverflow.com/questions/2998136/advantages-and-disadvantages-of-using -application-variables-in-web-applications –