Неверный запрос-недопустимое имя хоста IIS7
когда я пытаюсь попасть в мое веб-приложение на порт 8080 я получаю следующую ошибку
Неверный Запрос-Недопустимое Имя Хоста
Ошибка HTTP 400. Недопустимое имя хоста запроса.
Я даже не знаю, с чего начать, чтобы диагностировать эту проблему
13 ответов:
вы проверили привязку IIS? (версии.exe) он не может быть зарегистрирован, чтобы принять все имена хостов на 8080.
например, если вы настроите его для mysite.com:8080 и нажмете его на localhost:8080, IIS получит запрос, но не будет иметь привязки имени хоста, чтобы соответствовать, поэтому он отклоняет.
вне этого, вы должны проверить журналы IIS (C:\inetpub\logs\wmsvc#) на сервере и посмотреть, если вы видите ваш запрос. Тогда вы будете знать, если проблема на клиенте или на сам сервер.
FWIW, если вы хотите просто разрешить запросы, направленные на любое имя хоста / ip, то вы можете установить привязку следующим образом:
<binding protocol="http" bindingInformation="*:80:*" />
Я использую эту привязку, чтобы я мог загрузить виртуальную машину с IE6, а затем отладить мое приложение.
изменить: при использовании IIS Express для отладки расположение по умолчанию для файла конфигурации этого параметра -
C:\Users\{User}\Documents\IISExpress\config\applicationhost.config
этой страница Microsoft описывает, как настроить доступ к IIS Server Express с других компьютеров в локальной сети.
в двух словах:
1) из командной строки с правами администратора:
netsh http add urlacl url=http://[your ip address]:8181/ user=everyone
2) в Брандмауэре Windows с повышенной безопасностью создайте новое входящее правило для порта 8181, чтобы разрешить внешние подключения
3) в applicationhost.конфигурации в узле для вашего проекта, добавить:
<binding protocol="http" bindingInformation="*:8181:[your ip address]" />
не добавляйте (как было предложено в другом ответе):
<binding protocol="http" bindingInformation="*:8181:*" />
вышеуказанная привязка подстановочных знаков нарушила мой доступ от
http://192.168.1.6:8181/
Не забудьте также привязать к IPv6-адресу! Я пытался добавить сайт на 127.0.0.1 с помощью localhost и получил ошибку bad request/invalid hostname. Когда я пинговал localhost, он решил:: 1 так как IPv6 был включен, поэтому мне просто нужно было добавить дополнительную привязку, чтобы исправить проблему.
Я не уверен, что это была ваша проблема, но для тех, кто пытается получить доступ к своему веб-приложению со своей машины и имеет эту проблему:
убедитесь, что вы подключаетесь к
127.0.0.1
(а.к.аlocalhost
), а не на ваш внешний IP-адрес.Ваш URL должен быть что-то вроде
http://localhost:8181/
илиhttp://127.0.0.1:8181
и неhttp://YourExternalIPaddress:8181/
.
дополнительная информация:
Причина это работает, потому что ваш брандмауэр может заблокировать ваш собственный запрос. Это может быть брандмауэр на вашей ОС, и это может быть (обычный) ваш маршрутизатор.когда вы подключаетесь к своему внешнему IP-адресу, вы подключаетесь к вам из интернета, как если бы Вы были незнакомцем (или хакером).
Однако, когда вы подключаетесь к своему локальному хосту, вы подключаетесь локально как сами, и блок, очевидно, не нужен (и вообще избегается).
вы можете использовать Visual Studio 2005/2008/2010 CMD tool. Запустите его от имени администратора и напишите
aspnet_regiis -i
наконец - то я могу запустить свое приложение успешно.
на
Visual Studio 2017
иVisual Studio 2015
,IIS Express
настройки хранятся в скрытом.vs
каталог и путь-это что-то вроде этого.vs\config\applicationhost.config
добавить привязки, как показано ниже, будет работать<bindings> <binding protocol="http" bindingInformation="*:8802:localhost" /> <binding protocol="http" bindingInformation="*:8802:127.0.0.1" /> </bindings>
Я получил эту ошибку, когда пытался вызвать веб-сервис с помощью "localhost". Я исправил это, используя фактический IP вместо (192.168...)
Это slove моя проблема :
(извините за мой плохой английский)
1.) откройте cmd adminstor и запустите команду (без квадратных скобок): netsh http add urlacl url= http: / / [ip адрес]:[порт]/ пользователи=все2.) documents/iisexpress/config / applicationhost.config и в корневой папке проекта в папке (скрытой папке) .vs/config / applicationhost.config вам нужно добавить строку в тег "site":
3.) открыть " интернет информационные услуги (IIS) диспетчер", (если не найдете: в серч в tasckbar писать "под окно или выключить" и открыть resulet а затем установите флажок "интернет-информационная служба" и ее установки) в левой части экрана выберите пункт Компьютер-имя - >сайты - >параметры веб-сайте и нажмите в правой части экрана "привязка" нажать кнопку Добавить wirte что необходимо, и нажмите кнопку OK.
4.) откройте "Брандмауэр Windows с повышенной безопасностью", в левом экране нажмите" входящие правила", а затем нажмите в правом экране " новое правило..." проверьте порт и нажмите кнопку Далее, проверьте TCP и ваш порт и нажмите кнопку Далее, установите флажок "Разрешить подключение" и нажмите кнопку Далее, установите флажок все и нажмите кнопку Далее, имя wirte и нажмите кнопку Готово.
сделано.
Проверьте ваш локальный файл hosts (C:\Windows\System32\drivers\etc\hosts например). В моем случае я ранее использовал это, чтобы указать URL на поле dev, а затем забыл об этом. Когда я затем повторно использовал тот же URL-адрес, я продолжал получать плохой запрос (недопустимое имя хоста), потому что трафик шел на неправильный сервер.