IIS Expressでlocalhost以外を指定

ちょっと ASP.NET のテスト用の WebAPI が必要になって .ashx で用意したんだけれど、Visual Studio 2015 の開発用サーバー IIS Express が localhost にしか対応していなくて、調べて解決した話。

同一の開発端末の上で、Docker上のPHPから ホストの IIS Express 上で動作する ASP.NET のWebサービスを呼び出そうとすると、localhost だと Docker上の CentOS を参照してしまって困る。

自身の IPアドレス で、IIS Express を呼び出して、ASP.NET の Webサービスを叩きたい。

しかし、IIS Express は通常は localhost しかサービス提供しておらず、自身のIPアドレスを入力してアクセスすると、以下のメッセージが出る。

Bad Request – Invalid Hostname

これを解決するには applicationhost.config ファイルに設定を書き込めば良いとの事。

ファイルは C:\Users\(ユーザー名)\Documents\Visual Studio 2015\Projects\(プロジェクト名)\.vs\config に配置してある。.vs は隠しフォルダ。

文字列 localhost で検索し、ポート番号が IIS Express のものと一致しているか確認したら、その下の行に新しく割り当てる 自身のIPアドレスを挿入。

Visual Studio を一旦閉じて、再度 開いてビルドすると以下のエラー。

管理者権限での起動が必要とのことで、Visual Studioを管理者権限にて再起動。

今度は適切にWebサービス起動。IPアドレスにて IIS Express にアクセスできました。

以上、IIS Express + localhost の 自身IP 参照(仮想マシン)の簡潔設定でした。

外から繋がせたい、や、諸々詳しく設定したい場合は参考ページを参照。

参考ページ

Visual Studio 2015のIIS Expressにlocalhost以外からアクセスできるようにする方法

IIS Express を外部公開する