[Win2008 β3] IIS7.0:構成ファイルについて | Server OS Cafe

Server OS Cafe

Server OSの紹介等

IIS6.0まではIISの構成情報はメタベースに格納されていたのですが

IIS7.0からはapplicationHost.configというXML形式の構成ファイルに

保存されるようになったようです。

これによりIIS6.0まではGUIを使用せずに設定を変更しようとすると

付属のadsutil.vbsを使用してメタベースを変更する必要があったのですが

IIS7.0からは事前に必要な設定が書かれたapplicationHost.configを用意しておいて

それをただコピーするだけで良くなったようです。


ではまずWindowsエクスプローラでapplicationHost.configがどこにあるか探してみることにします。

どうやらC:\Windows\System32\inetsrv\configにあるようです。


IIS7_config

またC:\inetpub\historyにもありました。

こちらは過去のapplicationHost.configのバックアップのようです。


IIS7_config_history

これを見るとバックアップは過去10世代まで保存されているようですが

バックアップ先や世代数の設定は


C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml


の以下の部分で変更することが可能なようです。


<sectionSchema name="system.applicationHost/configHistory">
<attribute name="enabled" type="bool" defaultValue="true" />
<attribute name="path" type="string" defaultValue="%SYSTEMDRIVE%\inetpub\history" />
<attribute name="maxHistories" type="uint" defaultValue="10" validationType="integerRange" validationParameter="1,4294967295"/>
<attribute name="period" type="timeSpan" defaultValue="00:02:00" validationType="timeSpanRange" validationParameter="10,2147483647,1"/>
</sectionSchema>


さてではapplicationHost.configで簡単にIISの設定を移行できるかどうかを試してみることにします。

今回はWindows Server 2008 Beta 3搭載機を2台用意し、片方で行った設定を

ファイル・ディレクトリのコピーだけでもう一方に移すことができるかを見てみます。


■ 移行元の作業

1. [管理ツール] - [インターネット インフォメーションサービス(IIS)マネージャ]を起動します。

2. 以下のWEBサイトを追加します。

Webサイト名:Web Site2
コンテンツディレクトリ:C:\inetpub\wwwroot2
ポート:8080

3. Web Site2に仮想ディレクトリTestを追加し、そこに画面上に「TEST」と表示するだけの

簡単なHTMLファイルを1つおいておきます。

4. Web Site2にアプリケーションディレクトリApplicationを追加し

   そこに簡単なASP.NET WEBアプリケーションを置いておきます。


IIS7_configtest_aspnet

またアプリケーションディレクトリは認証方法を匿名認証から

Windows認証に変えておきます。


IIS7_config_setting


この状態で一度、移行元のapplicationHost.configの設定を確認してみます。

すると変更前と比べて以下の設定が追加されていることが確認できます。


<configuration>

<system.applicationHost>

--- 省略 ----

<sites>
<site name="Default Web Site" id="1">
----- 省略 -----

</site>
<site name="Web Site2" id="2">
<application path="/" applicationPool="Web Site2">
<virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot2" />
<virtualDirectory path="/Test" physicalPath="C:\inetpub\wwwroot2\test" />
</application>
<application path="/application">
<virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot2\application" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:8080:" />
</bindings>
</site>
<siteDefaults>
<logFile logFormat="W3C" directory="%SystemDrive%\inetpub\logs\LogFiles" />
<traceFailedRequestsLogging directory="%SystemDrive%\inetpub\logs\FailedReqLogFiles" />
</siteDefaults>
<applicationDefaults applicationPool="DefaultAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>

<webLimits />

</system.applicationHost>

---- 省略 ----

<location path="Web Site2/application">
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>

</configuration>


■ 移行先の作業

移行作業として以下の手順を行います。

1. 移行元のapplicationHost.configを移行先のC:\Windows\System32\inetsrv\config下に

上書きコピーします。
  2. 移行元のC:\inetpub\wwwroot2以下を移行先のC*\inetpub下にコピーします。


  移行作業は以上のみです。

移行先のIISの再起動も行いません

この状態で移行先のマシンで仮想ディレクトリTest下のHTMLとアプリケーションディレクトリApplication下の

ASP.NETをIEで呼び出してみて、両方のディレクトリが機能しているかどうかを見てみます。


IIS7_configtest_check1

どうやら機能していますね。
さらに移行先の[管理ツール] - [インターネット インフォメーションサービス(IIS)マネージャ]を起動して

設定を確認してみます。


IIS7_configtest_check2

追加したWEBサイト、仮想ディレクトリ、アプリケーションディレクトリそれから認証の設定も

すべて移行されていることが確認できます。



こんなに簡単に設定を移行できるとは驚きです。