Share via


【IIS7】 コンフィグレーションシステム Part I

何やら長いタイトルですが、何回かシリーズでIIS7の色々な機能を開発チームが社員向けに開発したトレーニングからピックアップしながらご紹介していこうと思います。概要はこちらのブログに来られる方であれば必要ないと思いますのですっ飛ばして、いきなり各パーツの話を書いていきますね。

今回は新しい構成システムについてです。

IIS を既にお使いの方はご存知とは思いますが、IISの設定情報というか構成情報はメタベースと呼ばれています。互換性以外の目的ではIIS7ではこのメタベースがなくなります。IIS6ではメタベースがXML化されましたという説明を今も色々な場所でご説明して回っていますが、IIS7ではもう一歩踏み込んで、「なくしてしまった」ということになります。

ではどういう構成情報の持ち方に変わったかというと、やはりXML形式なんですがApplicationHost.config というIISのプログラムが格納されている inetsrv フォルダに格納されているファイルになりました。.config という名前でピンとくる方は鋭い方ですが、.NETフレームワークで構成情報を格納している machine.config というのがありますが、あの形態に近いものになったとお考えいただければと思います。ただ、ASP.NETでは <system.web> というセクションに色々な構成が記述されていた訳ですが、IIS7の場合は <system.webServer> に記述されます。

この方式はIIS7のモジュール化構造と大きく関係があり、IISとASP.NETがアーキテクチャーレベルでIIS6よりもさらに統合した関係になっているため、実際のWebアプリケーションが置かれるサイト、あるいはアプリケーション単位で web.config ファイルを持つことができ、その web.config の中には <system.web> 記述も <system.webServer> 記述も含めることができます。このことにより、あるWebアプリケーションの必要とする前提構成情報はこの web.config に統一されて記述することができ、ついに xcopy で丸ごとアプリをテスト環境から運用環境へ持っていくことができるようになったと言えます。

ただし、今度のこの構成システムは Active Directory の OU の階層とその継承のように、あるいはファイルシステムのアクセス権の上位継承のように 上の階層の設定をそのまま引き継ぎます。従って、企業内の複数のアプリケーションが並立する環境下では web.config でどこまで指定できるようにするかの設計が必要になってくるという面があります。この辺でルールが統一されていないと、Webアプリフォルダ毎どんとコピーして、おかしいなあ 想定した動きをしないというケースも出てきます。

ということで、今回はコンフィグレーションシステム Part I ということで構成システムの特徴について書きました。次回はもう少し踏み込んでいきます。