しばやん雑記

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

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 して保存する機能を提供します。

f:id:shiba-yan:20160218211907p:plain

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

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

Ace - The High Performance Code Editor for the Web

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

f:id:shiba-yan:20160218212310p:plain

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

f:id:shiba-yan:20160218213945p:plain

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

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

f:id:shiba-yan:20160218214155p:plain

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

f:id:shiba-yan:20160218214414p:plain

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

f:id:shiba-yan:20160218214600p:plain

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

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

f:id:shiba-yan:20160218215010p:plain

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