しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

IIS Manager Extension を使って Azure Web Apps の IIS 設定を変更する

もう去年の話になりますが、年末の趣味プログラミングとして Web Apps の applicationHost.config を簡単に編集するために、IIS Manager Extension というものを作りました。

これまでも Site Extension を使えば XDT 経由で applicationHost.config をある程度は操作可能ですが、正直なところ XDT を書くのはかなり大変です。

そこで IIS Manager Extension は applicationHost.config の変更点を XDT して保存する機能を提供します。

きっかけは 2 つの XML から XDT を生成してくれる素敵ライブラリ FatAntelope がリリースされたことでした。これで XDT の相互変換が行えるようになりました。

エディタ部分には Kudu でも使われている Ace を採用しました。入力補完やフォーマットの自動チェックのおかげで、XML として不正な場合は一目で分かるようになりました。

Ace - The High Performance Code Editor for the Web

最後に簡単にですが使い方を紹介しておきます。まずは IIS Manager Extension をインストールします。

インストールすると /iismanager が追加されるので、URL を叩くと現在の applicationHost.config と XDT がタブで表示されます。右上にある 2 つのボタンは名前の通り XDT として保存と再起動です。

後は applicationHost.config を弄っていくだけなので、今回は Web Apps でよくはまるデフォルトの MIME マップに json が追加されていない問題に対応してみます。

内容としては mimeMap に拡張子 json を追加するだけになります。エディタで該当部分を探して入力します。

Ace のおかげで入力補完が動作するので、サクサク入力出来ます。本当なら XML Schema を使って利用できる項目だけを絞り込んだりしたいですが、なかなか難しいので半分諦めています。

この段階でタブを切り替えると、生成される XDT を確認することが出来ます。良い感じですね。

問題なさそうなので、Save XDT をクリックして保存し、サイトの再起動を実行します。再起動が必要なのは Site Extension の仕様として仕方ないので、面倒かも知れないですが諦めてください。

再起動後に Config の中にある applicationHost.config を確認しておきました。ちゃんと mimeMap が追加されていることが確認出来ました。

IIS は結構 applicationHost.config でしか設定できない項目が存在しているので、変更したい場合には XDT を書く必要がありましたが、これからは IIS Manager Extension を使うと幸せになれると思います。