Неверный запрос - неверное имя хоста IIS7 - PullRequest
71 голосов
/ 28 января 2011

Когда я пытаюсь подключить свое веб-приложение к порту 8080, я получаю следующую ошибку

Неверный запрос - Неверное имя хоста
Ошибка HTTP 400. Неверное имя хоста запроса.

Я даже не знаю, с чего начать диагностику этой проблемы

Ответы [ 13 ]

67 голосов
/ 28 января 2011

Вы проверяли привязку IIS? (inetmgr.exe) Он не может быть зарегистрирован для приема всех имен хостов на 8080.

Например, если вы настроили его для mysite.com:8080 и нажали на localhost: 8080, IIS получит запрос, но не будет иметь привязки имени хоста для сопоставления, поэтому он отклонит.

Кроме того, вы должны проверить журналы IIS (C: \ inetpub \ logs \ wmsvc #) на сервере и посмотреть, видите ли вы свой запрос. Тогда вы будете знать, если это проблема на вашем клиенте или на самом сервере.

28 голосов
/ 26 сентября 2013

FWIW, если вы хотите разрешить запросы, направленные на любое имя хоста / ip, вы можете установить привязку следующим образом:

<binding protocol="http" bindingInformation="*:80:*" />

Я использую эту привязку, чтобы я мог загрузить виртуальную машину с IE6 и затем отладить свое приложение.


РЕДАКТИРОВАТЬ: при использовании IIS Express для отладки расположение по умолчанию для файла конфигурации этого параметра

C:\Users\{User}\Documents\IISExpress\config\applicationhost.config
22 голосов
/ 30 октября 2014

На этой странице Microsoft описано, как настроить доступ к IIS Server Express с других компьютеров в локальной сети.

В двух словах:

1) изкомандная строка с правами администратора:

netsh http add urlacl url=http://[your ip address]:8181/ user=everyone

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/

20 голосов
/ 10 августа 2015

Итак, я решил эту проблему, перейдя на свой веб-сайт в IIS Manager и изменив имя хоста в привязках сайта с localhost на *. Начал работать сразу.

Site Bindings in IIS

4 голосов
/ 23 октября 2017

Для 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>
4 голосов
/ 13 июля 2017

это словно моя проблема:
(Извините за мой плохой английский)
1.) Откройте cmd админстора и выполните команду (без квадратных скобок): netsh http add urlacl url = http://[ip адрес]: [порт] / пользователь = все

2.) Documents / iisexpress / config / applicationhost.config и в корневой папке проекта в папке (скрытая папка) .vs / config / applicationhost.config вам нужно добавить строку в тег «site»:

3.) Откройте «Диспетчер информационных служб Интернета (iis)», (если он не найден: в serch на панели задач введите «Включение или выключение функций окна», откройте Resulet, а затем установите флажок «Служба интернет-информации» и установите его на левом экране, щелкните имя компьютера -> Сайты -> Веб-сайт по умолчанию, а затем нажмите на правом экране «Связывание», нажмите кнопку «Добавить» и нажмите «ОК».

4.) Откройте «Брандмауэр Windows в режиме повышенной безопасности», на левом экране нажмите «Правила для входящих подключений», а затем нажмите на правом экране «Новое правило ...», проверьте порт и нажмите Далее, проверьте TCP и свой порт и нажмите Далее установите флажок «Разрешить соединение» и нажмите «Далее», установите флажок «все» и нажмите «Далее», введите имя и нажмите «Готово».

сделано.

4 голосов
/ 31 октября 2015

Не забудьте также привязаться к IPv6-адресу! Я пытался добавить сайт на 127.0.0.1 с помощью localhost и получил неверный запрос / неверное имя хоста. Когда я пинговал localhost, он разрешился в :: 1, так как IPv6 был включен, поэтому мне просто пришлось добавить дополнительную привязку, чтобы исправить проблему.

IIS Site Bindings

3 голосов
/ 26 января 2013

Я не уверен, что это была ваша проблема, но для любого, кто пытается получить доступ к его веб-приложению со своего компьютера и имеет эту проблему:

Убедитесь, что вы подключаетесь к 127.0.0.1 (a.k.a localhost), а не к внешнему IP-адресу.

Ваш URL должен быть примерно таким: http://localhost:8181/ или http://127.0.0.1:8181 и , а не http://YourExternalIPaddress:8181/.

<ч /> Дополнительная информация:
Это работает потому, что ваш брандмауэр может блокировать ваш собственный запрос. Это может быть брандмауэр в вашей ОС, и это может быть (обычный) ваш маршрутизатор.

Когда вы подключаетесь к своему внешнему IP-адресу, вы подключаетесь к нему из Интернета, как если бы вы были незнакомцем (или хакером).
Однако, когда вы подключаетесь к локальному хосту, вы подключаетесь локально как вы сами, и блок явно не нужен (и вообще избежал).

2 голосов
/ 28 июля 2012

Вы можете использовать инструмент Visual Studio 2005/2008/2010 CMD.Запустите его от имени администратора и напишите

aspnet_regiis -i

Наконец-то я могу успешно запустить свое приложение.

1 голос
/ 25 июня 2014

Я получил эту ошибку, когда пытался вызвать веб-сервис, используя "localhost". Я исправил это, используя вместо этого реальный IP (192.168 ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...