Когда я пытаюсь запустить свое веб-приложение на порт 8080, я получаю следующую ошибку
Неверный запрос - недопустимое имя хоста.
Ошибка HTTP 400. Недействительное имя хоста запроса.
Я даже не знаю, с чего начать диагностику этой проблемы
Вы проверили привязку к IIS? (inetmgr.exe) Возможно, он не будет зарегистрирован для приема всех имен хостов на 8080.
Например, если вы настроите его для mysite.com:8080 и нажмете на localhost: 8080, IIS получит запрос, но не будет иметь привязку имени хоста для сопоставления, поэтому он отклонит.
Кроме того, вы должны проверить журналы IIS (C: \ inetpub \ logs \ wmsvc #) на сервере и посмотреть, видите ли вы свой запрос. Тогда вы узнаете, проблема в вашем клиенте или на самом сервере.
FWIW, если вы хотите просто разрешить запросы, направленные на любое имя хоста / IP, вы можете установить привязку следующим образом:
Я использую эту привязку, чтобы загрузить виртуальную машину с IE6, а затем отладить свое приложение.
РЕДАКТИРОВАТЬ: при использовании IIS Express для отладки расположение по умолчанию для файла конфигурации этого параметра
источник
На этой странице Microsoft описывается, как настроить доступ к IIS Server Express с других компьютеров в локальной сети.
В двух словах:
1) из командной строки с правами администратора:
2) В брандмауэре Windows в режиме повышенной безопасности создайте новое правило для входящего трафика для порта 8181, чтобы разрешить внешние подключения.
3) В applicationhost.config в узле вашего проекта добавьте:
<binding protocol="http" bindingInformation="*:8181:[your ip address]" />
НЕ добавляйте (как было предложено в другом ответе):
<binding protocol="http" bindingInformation="*:8181:*" />
Вышеупомянутая привязка подстановочного знака прервала мой доступ с
http://192.168.1.6:8181/
источник
netsh http delete urlacl url=http://[your ip address]:8181/
Итак, я решил эту проблему, перейдя на свой сайт в диспетчере IIS и изменив имя хоста в привязках сайта с localhost на *. Приступил к работе сразу.
источник
Для
Visual Studio 2017
иVisual Studio 2015
,IIS Express
настройки хранятся в скрытой.vs
директории и путь что - то вроде этого.vs\config\applicationhost.config
, добавить связывание как ниже будет работатьСинтаксис: https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.administration.binding.bindinginformation?view=iis-dotnet
источник
<bindings> <binding protocol="http" bindingInformation="localhost:8802:*" /> <binding protocol="http" bindingInformation="127.0.0.1:8802:*"/> </bindings>
Не забудьте также привязать к IPv6-адресу! Я пытался добавить сайт на 127.0.0.1, используя localhost, и получил ошибку неверного запроса / недопустимого имени хоста. Когда я pinged localhost, он разрешился на :: 1, поскольку IPv6 был включен, поэтому мне просто пришлось добавить дополнительную привязку, чтобы исправить проблему.
источник
Это решило мою проблему (извините за плохой английский):
откройте cmd от имени администратора и запустите команду (без квадратных скобок):
netsh http add urlacl url=http://[ip adress]:[port]/ user=everyone
в
documents/iisexpress/config/applicationhost.config
и в корневой папке проекта в (скрытой) папке:.vs/config/applicationhost.config
вам нужно добавить строку в тег «site»:<binding protocol="http" bindingInformation="*:8080:192.xxx.xxx.xxx" />
откройте «диспетчер информационных служб Интернета (iis)»
(чтобы найти его: в строке поиска на панели задач напишите «Включить или выключить функции окна» и откройте результат, а затем установите флажок «Информационная служба Интернета» и установите его):
откройте «Брандмауэр Windows в режиме повышенной безопасности»,
сделанный.
источник
Я не уверен, была ли это ваша проблема, но для всех, кто пытается получить доступ к своему веб-приложению со своего компьютера и имеет эту проблему:
Убедитесь, что вы подключаетесь к
127.0.0.1
(он жеlocalhost
), а не к своему внешнему IP-адресу.Ваш URL должен быть чем - то вроде
http://localhost:8181/
илиhttp://127.0.0.1:8181
и неhttp://YourExternalIPaddress:8181/
.Дополнительная информация:
Причина, по которой это работает, заключается в том, что ваш брандмауэр может заблокировать ваш собственный запрос. Это может быть брандмауэр вашей ОС или (обычный) маршрутизатор.
Когда вы подключаетесь к своему внешнему IP-адресу, вы подключаетесь к вам из Интернета, как если бы вы были незнакомцем (или хакером).
Однако, когда вы подключаетесь к своему локальному хосту, вы подключаетесь локально как вы, и блок, очевидно, не нужен (и его вообще избегают).
источник
localhost
в том, что он имеет в виду (127.0.0.1
). Все, что я говорю, это подключайтесь к нему, а не к вашему внешнему IP-адресу. Нет никакой уверенности в localhost, он просто используется как синоним. Я отредактирую свой ответ, чтобы было понятнее.Вы можете использовать инструмент CMD Visual Studio 2005/2008/2010. Запускаем от имени администратора и пишем
Наконец-то я могу успешно запустить свое приложение.
источник
Если вы работаете на локальном сервере или у вас нет доменного имени, удалите поле «Имя хоста:».
источник
Проверьте файл локальных хостов (например, C: \ Windows \ System32 \ drivers \ etc \ hosts). В моем случае я ранее использовал это, чтобы указать URL-адрес окна разработчика, а затем забыл об этом. Когда я затем повторно использовал тот же URL, я продолжал получать Bad Request (Invalid Hostname), потому что трафик шел на неправильный сервер.
источник
Я получил эту ошибку, когда попытался вызвать веб-сервис с помощью localhost. Я исправил это, используя вместо этого фактический IP (192.168 ...)
источник
Я увидел ту же ошибку после использования msdeploy для копирования приложения на новый сервер. Оказалось, что привязки по-прежнему использовали IP-адрес с предыдущего сервера. Итак, дважды проверьте IP-адрес в привязках IIS. (Кажется очевидным постфактум, но мне не сразу пришло в голову проверить это).
источник
Дважды проверьте точный URL, который вы предоставляете. Я увидел эту ошибку, когда пропустил префикс маршрута, определенный в ASP.NET, поэтому он не знал, куда направить запрос.
источник
Убедитесь, что IIS прослушивает ваш порт.
В моем случае это была проблема. Поэтому мне пришлось изменить свой порт на что-то еще, например, 8083, и это решило эту проблему.
источник