d.sunnyone.org
sunnyone.org

ページ

2013-07-12

Azure WebRole開発で使われるIIS Expressの設定(applicationHost.config)を変更する

Azure WebRole開発で(設定で選択した場合)利用されるIIS Expressの設定を変更する方法がちょっとトリッキーなので記録しておく(Azure SDK 2.0向け…Azureはどんどん変わるので)。このブログでAzureが登場するのは初めてかも。

結論

c:\Program Files\IIS Express\AppServer\applicationHost.configを変更する。

うまくいかなかったら、下に書いた方法で調べるといいかも。

詳細

Web Roleのアプリケーションを開発する際は、開発環境でIIS Expressを使うかIISを使うかをクラウドサービスプロジェクトの設定で選べる。
この設定でIIS Expressを使用するを選んだ場合、IIS Expressが利用される。AzureのIISの設定は、 startup taskでappcmd.exeを叩く(いつもお世話になっているブチザッキさんのブログ)とか、Microsoft.Web.Administartion(NuGet)を使ってC#から変更するといった方法が使えるのだけど、IIS Expressの場合はIISではないので、この方法では設定が反映されない。

IIS Expressの設定ファイルはDocuments\IIS Express\config\applicationHost.config をいじれという情報がWebにある(例えばいつもお世話になっているブチザッキさんのブログ)ので、「これだ!」と思って変更するものの、反映されない。

そこで、Process Explorerでiisexpress.exeのコマンドラインを調べてみると、applicationHost.configの場所が明示的に指定されていることがわかった。

指定されているのがどう見ても一時的なパスなので、もしかして埋め込まれてたりして変えられないのかなーと思ってProcess Monitorで見たら、WaHostBootstrapper.exeがc:\Program Files\IIS Express\AppServer\applicationHost.config を読んで、上記の一時的なパスに書き込んでいることがわかったので、元のファイルを書き換えてみると無事反映された。


めでたしめでたし。
(自分の環境で、「IIS Web サーバーを使用する」で動くようにしろという話ではあるが)

0 件のコメント:

コメントを投稿