しばやん雑記

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

Windows Azure Web サイトの小ネタ集

最近は重い機能ばかりやってきた気がしたので、単体では紹介しにくい細かい機能を紹介していきます。

むしろ ASP.NET 関係なくて PHP とか Perl を動かした時に必要になった機能です(

アプリケーション設定に追加した値は環境変数にも登録される

Web サイトでは環境変数のみを設定する機能は用意されていませんが、ポータルのアプリケーション設定から追加した値は環境変数にも同名で登録されるようになっています。

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

管理ポータルからアプリケーション設定として WEBSITE_PRIVATE_EXTENSIONS という値を登録しています。

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

Kudu の環境表示機能を使って確認してみると、ちゃんと環境変数として追加されていますね。FastCGI 絡みで環境変数に追加する必要がある場合に便利そうな機能です。

ドキュメントルートを変更する

Web サイトのデフォルトのドキュメントルートは site\wwwroot となっていますが、管理ポータルからパスを変更することで、site\wwwroot 以外をドキュメントルートにすることが出来ます。

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

構成ページの下の方にあるので、割と気が付きにくい部分だと思いますが、ある程度の自由度も持っているのが Web サイトの特徴と言えそうです。

仮想アプリケーション、ディレクトリを追加する

先ほどのドキュメントルート変更時に気が付いた人も多いと思いますが、Web サイトでは仮想アプリケーションと仮想ディレクトリを管理ポータルから追加することも出来ます。

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

これは Movable Type 6 を動かした時に行った設定となります。アプリケーションのチェックボックスにチェックを入れた場合にはアプリケーション扱いに、入れなかった場合にはディレクトリ扱いになります。

Always On は IIS 8 の ApplicationInitialization モジュールを使っている

そのまんまですが、Web サイトに追加された Always On は IIS 8 の ApplicationInitialization モジュールを使って実現されているみたいです。

特に説明はされていませんが、Web.config でのオーバーライドにロックはかけられていないので設定を細かく変更することも出来ます。

<system.webServer>
  <applicationInitialization remapManagedRequestsTo="Loading.html" skipManagedModules="true">
    <add initializationPage="/Init.aspx"/>
  </applicationInitialization>
</system.webServer>

なので、よく見る初期化の処理中に表示ページを差し替える設定も普通に動作します。