しばやん雑記

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

Windows Azure Web サイトの管理を IIS Manager から行えるようになったらしい

Kudu で applicationHost.config を見ているときに /InetMgr の設定があるなぁと思っていたら、IIS Manager から Web サイトの設定を行えるようになっていたようです。

Remote Administration of Windows Azure Websites using IIS Manager - Windows Azure - Site Home - MSDN Blogs

そして Windows Azure 界の抱かれたい男 No.1 に煽られたので調べることにしました。

で、実際のところ IIS Manager から接続出来て何が嬉しいかですが、最大のメリットは元記事で書いてある通り Web.config の記述ミスでのエラーを防げることでしょう。

Visual Studio 2013 のエディタでもスキーマである程度チェックはしてくれますが、GUI で設定した方がやはり確実ではあります。とりあえずぐだぐだ言うのは止めて、実際に Web サイトに繋げてみますが方法は元記事参照してください。

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

URL は Kudu 側を指定しないといけないので注意ですね。あとユーザー名とパスワードは発行プロファイルに記述されているもので、git デプロイや Kudu のログインに使うものとは別なので注意してください。

接続が完了したら見慣れたアイコンが表示されるので安心です。ちなみに開発は IIS Express で行っているので、仮想マシンを立てて IIS をインストールして IIS Manager を使っています。

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

基本的には Web.config の内容をほぼ設定できるようになってますが、applicationHost.config に関しては今まで通り Kudu と Site Extensions を使わないと変更不可能です。

設定のめんどくささには定評のある URL Rewrite 周りでも、やはり GUI で作業が出来るのは便利ですね。

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

当たり前という感じですが、Web サイトの Web Worker には ARR がインストールされていないのでリバースプロキシを作ることは出来ません。

とりあえず設定が割とめんどくさい Outbound Rule を IIS Manager から作成してみました。

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

こんな感じで入力して保存すると、以下のような 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 の確認用としても便利かもしれませんね。