Kudu で applicationHost.config を見ているときに /InetMgr の設定があるなぁと思っていたら、IIS Manager から Web サイトの設定を行えるようになっていたようです。
そして Windows Azure 界の抱かれたい男 No.1 に煽られたので調べることにしました。
しばやんが把握したのであとは任せよう
— こすもす (@kamebuchi) 2014, 3月 1
で、実際のところ IIS Manager から接続出来て何が嬉しいかですが、最大のメリットは元記事で書いてある通り Web.config の記述ミスでのエラーを防げることでしょう。
Visual Studio 2013 のエディタでもスキーマである程度チェックはしてくれますが、GUI で設定した方がやはり確実ではあります。とりあえずぐだぐだ言うのは止めて、実際に Web サイトに繋げてみますが方法は元記事参照してください。
URL は Kudu 側を指定しないといけないので注意ですね。あとユーザー名とパスワードは発行プロファイルに記述されているもので、git デプロイや Kudu のログインに使うものとは別なので注意してください。
接続が完了したら見慣れたアイコンが表示されるので安心です。ちなみに開発は IIS Express で行っているので、仮想マシンを立てて IIS をインストールして IIS Manager を使っています。
基本的には Web.config の内容をほぼ設定できるようになってますが、applicationHost.config に関しては今まで通り Kudu と Site Extensions を使わないと変更不可能です。
設定のめんどくささには定評のある URL Rewrite 周りでも、やはり GUI で作業が出来るのは便利ですね。
当たり前という感じですが、Web サイトの Web Worker には ARR がインストールされていないのでリバースプロキシを作ることは出来ません。
とりあえず設定が割とめんどくさい Outbound Rule を IIS Manager から作成してみました。
こんな感じで入力して保存すると、以下のような Web.config が作成されます。
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <rewrite> <outboundRules> <rule name="Static File to Blob" preCondition="IsHTML"> <match filterByTags="Img" pattern="^(.*)$" /> <action type="Rewrite" value="http://shibayan.blob.core.windows.net/{R:1}" /> </rule> <preConditions> <preCondition name="IsHTML"> <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" /> </preCondition> </preConditions> </outboundRules> </rewrite> </system.webServer> </configuration>
Outbound Rule の内容としては画像を Blob へ振り分けるような感じです。Web サイトの容量を考慮すると重要になりそうなので、これに関しては何時かブログに書きます。
IIS Manager からは継承された設定を確認することが出来るので、MIME Map や HttpModule の確認用としても便利かもしれませんね。