補講の4回目です。今回は「アプリケーションプール」について解説します。
ASP.NET アプリケーションは、PerlなどのCGIと違って、一度コンパイルされて動いています。前回、解説したように一時的にコンパイルされたDLLを呼び出しているわけです。
このDLLは単体で動くわけではなくて、w3wp.exe という「ワーカープロセス」から呼び出しています。この実行ファイルを制御しているのが「アプリケーションプール」というものです。
通常は、「ワーカープロセス」=「アプリケーションプール」と覚えていて構いません。
IISマネージャでみると、これですね。
また、ASP.NETアプリケーションが動くときに、このワーカープロセスが1つずつ起動されているわけではありません。複数のASP.NETは、ひとつのワーカープロセスに相乗りしています。
中身を見たいアプリケーションプールを選択して、右側の【アプリケーションの表示】を選択すると、アプリケーションプールを共有している ASP.NET アプリが見れます。
<013>
さて、ちょっと考えると分かりますが、複数のASP.NETアプリが相乗りしているということは、このワーカープロセスが落ちるようなことがあると、全てのASP.NETに影響がでてしまいます。
つまり、他のASP.NETアプリで不都合があったり、非常に重たかったりすると、他のASP.NETアプリに影響がでるわけです。
これを防ぐために、デフォルトのアプリケーションプール以外にも、新しいアプリケーションプールを作成できます。
アプリケーションプールを選択した後に、右上にある【アプリケーションプールの追加】を選択します。
こうすることで、重たいASP.NETアプリを別のアプリケーションプールに移して、軽いASP.NETアプリはひとつのアプリケーションプールに置く、という配置が可能です。