IIS のウェブアプリケーションとは?

ここでは、ASP.NET の挙動を理解し、正しくウェブサーバーを構成するに当たって非常に重要な、IIS のウェブアプリケーションについて説明してみたいと思います。

実は IIS では ASP.NET のスクリプトを仮想ディレクトリに上げれば「ハイ、アプリケーションの出来上がり」とは言えません。

・・・ま、どう言うのも個人の自由と言えば自由なんですけどね(苦笑)、殊 IIS では「(ウェブ) アプリケーション」という言葉を特別な意味で使っているので、「何でもかんでもアプリケーションだ」 というと IIS を理解できなくなってしまいますので注意が必要です。

IIS のウェブアプリケーションとは?

それではいったい、ウェブアプリケーションとは何でしょうか?

まずはアプリケーションを、管理画面で確認してみましょう。

ウェブサイトのルートディレクトリは %SYSTEMDRIVE%\Inetpub\wwwroot ですが、この下に sess1 という名前のフォルダーを作ります。

すると、IIS マネージャーで次のように見えてきます。

右クリックし、表示されたコンテキストメニューを見ると "Convert to Application" (アプリケーションに変換) という項目があります。

これを選択すると、アプリケーションの設定画面が表示されます。この中で、特に注目したいのはアプリケーションプール (Application Pool) の設定です。

ここでは "ASP.NET 4.0" という名前の「アプリケーションプール」が選択されています。

ちなみに、これはあくまでも名前であって、必ずしも ASP.NET 4.0 という名前のアプリケーションプールを選んだから、 ASP.NET 4.0 が使われるようになるわけでもありません。ASP.NET 4.0 という名前のアプリケーションプールで、ASP.NET 2.0 をホストするように設定しても構いません(が、そんな分かりにくいことをわざわざするのは馬鹿げてます)。

この画面の "Select..." (選択) ボタンをクリックすると、現在選択可能なアプリケーションプールの一覧が表示されます。

ちなみに、このリストの中の項目は IIS マネージャーの "Application Pools" で表示される項目です。

アプリケーションプールは自分で作成することも可能です。

この辺も重要なのでまた別の記事で説明します。

さて、先ほど "Convert to Application" を選択した "sess1" ですが、アイコンが変わっています。

アイコンがブルーの地球アイコンに変わったところが、IIS でいうところの「(ウェブ) アプリケーション」なのです。

デフォルトではサイトのルートがアプリケーションになっているので、通常はそのルートの情報が継承されます。今回のように 明示的にアプリケーションを作成したポイントで、ルートのアプリケーションから切り離されて、それぞれ独自のアプリケーション設定が有効になります。

構成ファイル (Web.config) はウェブアプリケーションのルートに配置しますし、セッションなどの情報もこの「アプリケーション」以下の領域で共有されます。 アプリケーションプールもアプリケーション毎に設定可能です。

このように、まずは単なる「仮想ディレクトリ」とは異なる「ウェブアプリケーション」という単位があることをしっかり頭にいれてください。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 ASP.NET 入門