IIS Expressの仮想ディレクトリを applicationhost.config から削除する方法

今日はあいにくの雨の日曜日。今週、来週と続くイベントの準備をしつつ、ひとつブログを書いてみます。

今日は IIS Express のお話。とは言ってもそんなに難しい話ではなくて、IIS Express の applicationhost.config ファイルに増える一方の仮想ディレクトリの設定を削除する方法です。

◆◆◆

Visual Studio 2012 では、新しい Web アプリケーション プロジェクトを作成すると、デフォルトで IIS Express が使用されます。

image

この設定により、プロジェクトが作成された時点で、IIS Express には仮想ディレクトリが作成され、デフォルトで “C:\Users\<user name>\Documents\IISExpress\config\applicationhost.config” に以下の設定が記述されます(上のスクリーンショットにある “Visual Studio 2012 – IIS Web サーバーの使用” の設定の “仮想ディレクトリの作成” ボタンを押した場合も、設定された URL で下記のような仮想ディレクトリの設定が行われます)。

IIS Exppress: applicationhost.config

 <configuration>
    ...
    <system.applicationHost>
        ...
        <sites>

             <site name="WebAppIISExpress" id="23">                <application path="/" applicationPool="Clr4IntegratedAppPool">                    <virtualDirectory path="/" physicalPath="c:\users\(user name)\documents\visual studio 2012\Projects\WebAppIISExpress\WebAppIISExpress" />                </application>                <bindings>                    <binding protocol="http" bindingInformation="*:55298:localhost" />                </bindings>            </site> 







        ...
        </sites>
    ...
    </system.applicationHost>
    ...
</configuration>

例えばこの後にこのプロジェクトが不要になって、Visual Studio のプロジェクトフォルダからプロジェクト一式を削除したとしても、上記の IIS Express の applicationhost.config に記述された仮想ディレクトリのエントリーは残ったままになってしまいます。別に気にしなければどうでもいいことなのかもしれませんが、後で同じ名前のサイトを作った場合に “<サイト名>(1)” と番号がついてしまったり、ポート名がぶつかってしまうことも無きにしも非ずで、何となく気持ち悪いですよね。。。

この applicatonhost.config ファイルをテキストエディターなどで編集してももちろん OK ですが、もっと手軽にかつ安全に不要になった仮想ディレクトリの設定を削除する方法をご紹介します。

その方法は、あの (?) WebMatrix 2 を使います。

WebMatrix 2 で [サイトを開く] – [個人用サイト] を選択します。

image

[サイトの選択] で [すべて] または [作成日] を選ぶと、IIS Express の applicationhost.config ファイルに記述されている仮想ディレクトリを持つサイトが一覧表示されますので、削除したいサイト名上で右クリックして [削除] をクリックします。

image

続いて表示される [サイトの削除] ダイアログで、[サイトのみ削除] と [サイトおよびコンテンツの削除] のいずれかを選択します。すでにコンテンツ (プロジェクト) が削除されている場合は、どちらを選んでも仮想ディレクトリの設定が削除されるだけですが、もしもコンテンツがまだ残っている状態で、仮想ディレクトリの設定だけを削除したい場合は、最初の [サイトのみ削除] を選んでください。

image

これで、きれいさっぱり、IIS Express の applicationhost.config ファイルから指定したサイトの仮想ディレクトリのエントリーが削除できます。

IIS Express には、iisexpress.exe や iisexpressAdminCmd.exe を使ってコマンドラインで操作できる設定もいくつかありますが、仮想ディレクトリを削除するコマンドは見つけられませんでした。今後このあたりのコマンドなどが充実してくるといいですね。(もし既にもっと便利な方法があるよー、などご存じの方がいたら教えてください)

さてさて、Developer Camp 2012 の準備、準備・・・(汗