ちょっと 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以外からアクセスできるようにする方法