読者です 読者をやめる 読者になる 読者になる

clock-up-blog

go-mi-tech

ASP.NET MVC のデバッグ実行時に localhost 以外のホスト指定を受け付ける

ASP.NET Advent Calendar 2016 10日目の記事です。

概要

ASP.NET MVC で作成したプロジェクトのデバッグ実行時には localhost 指定でしか繋がらない設定になっていますが、これを任意ホスト指定で繋がるように設定変更を行います。

デフォルトの挙動

ASP.NET MVC で作成したプロジェクトの実行中に http://localhost:100/ のようなアクセスは可能でも、http://192.168.X.X:100/ のようなアクセスをしようとすると、以下のようなエラーが表示され、アクセスが弾かれます。

Bad Request - Invalid Hostname
HTTP Error 400. The request hostname is invalid.

.vs\config\applicationhost.config をいじる

localhost 以外のホスト指定も受け入れるようにするには、
ソリューションディレクトリ配下の .vs\config\applicationhost.config を編集すると良いです。

例えば 100 番ポートで待ちうけるような Web プロジェクトであった場合、applicationhost.config 内で以下のような定義を探します。

....
<bindings>
    <binding protocol="http" bindingInformation="*:100:localhost" />
</bindings>
....


binding タグを1個複製して localhost の部分を * に置き換えます。

....
<bindings>
    <binding protocol="http" bindingInformation="*:100:localhost" />
    <binding protocol="http" bindingInformation="*:100:*" /> <!-- この行を追加 -->
</bindings>
....


これで任意ホスト指定で Web アクセスできるようになります。
http://localhost:100/ だけでなく http://192.168.X.X:100/ 等のような指定でもアクセスできるようになる。)

});