Kestrel のエンドポイントは、デフォルトだと http://localhost:5000;https://localhost:5001
。デフォルトのままでいいやと、Windows Server 2016 の VM で Windows サービスとしてセルフホストしたら、VM 外からアクセスできなくてハマった。
VM 内から http://localhost:5000
や http://127.0.0.1:5000
ならアクセスできた。http://VMのプライベートIPアドレス:5000
だとアクセスできない。
UseUrls
メソッドか --urls
コマンドライン引数で、http://*:5000;https://*:5001
を指定する必要があったようだ。WCF だと localhost で上手くいっていたので、まったく怪しまなかった。こんな初歩的なことでハマるとは…。いつも ASP.NET Core アプリのホストは App Service ばっかりだったので、App Service がいかに至れり尽くせりなのかを実感した。