Bad Request - Invalid Hostname HTTP Error 400. The request hostname is invalid.ASP.NET Core
Собственно поставил(опубликовал) я асп сервер на iis. Вроде все заработало, но если хочу зайти на него не через localhost - пишет ошибку 400. На другом устройстве сервер видится, но также 400 ошибка.
Что нужно сделать чтобы переместить сервер с localhost на ip? В основном все что я находил были старые способы в которых снимали галочку в настройках в пункте связанном с override URL. В нынешних настройках я такого не нашел.
Наверняка проблема в самом сервере и я не знаю что менять. Уже все потыкал вроде, только новых ошибок с соединением с IIS нахватался. Если нужно, то вот код launchSettings:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:49461",
"sslPort": 44395
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"server": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Если потребуется еще код - могу дополнить.
Ответы (2 шт):
Решилось. Все дело, как я понял, было в том, что у меня, как оказалось, не был установлен .NET Core Windows Server Hosting. После все уже запустилось как на моем, так и на других устройствах локальной сети по ссылке http://192.168.0.106:59869/ . Невнимательно прочитал и мучался с этим пару часов.
я почитал вот эту статью: https://weblog.west-wind.com/posts/2016/sep/28/external-network-access-to-kestrel-and-iis-express-in-aspnet-core
и там главная суть: Exposing IIS Express to the Network If you want to use IIS Express and allow external access, you need to explicitly change the bindings in the solution applicationhost.config file which can be found in .vs\config. Change the bindingInformation to: changing the *:26448:localhost to :26448: where 26448 is the IIS Express port.
Я вместо этого добавил у себя пару строк и получилось вот так:
<bindings>
<binding protocol="http" bindingInformation="*:62731:localhost" />
<binding protocol="https" bindingInformation="*:44377:localhost" />
<binding protocol="https" bindingInformation="*:44377:win10-hann" />
<binding protocol="http" bindingInformation="*:62731:win10-hann" />
</bindings>
Короче ниже добавил копии локалхостов с dns именем win10-hann. После этого из локалки я смог запрашивать Kestrel таким образом:
https://win10-hann:44377/index.html