27 апреля 2015
Кравченко Виктор

IIS Express – HTTP Error 400. The request hostname is invalid

MVC ASP.NET Visual Studio 2013 Web
01

«Допустим, что вы, не устояв перед натиском прогресса, установили Visual Studio 2013 и перенесли в неё существующий проект, который содержит поддомены типа part.mysite.com. После запуска проекта вас будет ждать разочарование — на любую страницу страницу с поддоменом сервер отреагирует досадной ошибкой:

02
Bad Request - Invalid Hostname.
HTTP Error 400. The request hostname is invalid.
03

Первым делом вы конечно же кинитесь проверять ваш файл hosts (C:\Windows\System32\drivers\etc), но с удивлением обнаружите, что с ним все в порядке...»

04

Похоже на страшилку. Все дело в том, что в Visual Studio 2013 по умолчанию встроен сервер IIS Express. У него немного иной механизм взаимодействия с адресами. Визуальной среды настройки он не имеет, поэтому все взаимодействие происходит через командную строку. Также для конфигурирования IIS Express используется файл applicationhost.config, располагающийся в папке %UserName%\Documents\IISExpress\config. Открываем его в студийном редакторе и находим раздел отвечающий за проект:

05 XML
1
2
3
4
5
6
7
8
<site name="MVC_speckm.ru_v1.0" id="3"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="Путь_к_вашему_проекту" /> </application> <bindings>
<binding protocol="http" bindingInformation="*:54524:localhost" />
</bindings> </site>
06

Чтобы сервер пропускал любой адрес с этим портом, заменяем выделенную строку на:

07 XML
1
<binding protocol="http" bindingInformation="*:54524:*" />
08

Либо если вы хотите обращаться к своему проекту по осмысленному адресу, то, например:

09 XML
1
<binding protocol="http" bindingInformation="*:54524:debug.codius.ru" />
10

Далее отключаем IIS Express, запускаем под администратором командную строку и вводим команду резервирования url-адреса (порт указываем свой):

11
netsh http add urlacl url=http://*:54524/ user=everyone
12

В ответ на выполнение этой команды вы (если у вас не англоязычный Windows) конечно же получите ошибку Сбой создания SDDL. Ошибка: 1332. Параметр задан неверно, потому что нет такого пользователя в русскоязычном Windows — зато есть пользователь Все:

13
netsh http add urlacl url=http://*:54524/ user=Все
14

Снова запускаем проект. Готово!

15 На заметку:
Не забываем вносить, при необходимости, изменения в файл hosts: # localhost name resolution is handled within DNS itself.
127.0.0.1 localhost
127.0.0.1 debug.codius.ru
# ::1 localhost
17

Похожие запросы:

  • Using Custom Domains With IIS Express
  • Сбой создания SDDL. Ошибка: 1332. Параметр задан неверно
  • Bad Request — Invalid Hostname IIS7
  • HTTP Error 400. The request hostname is invalid
  • IIS Express – Error 400
  • Bad Request — Invalid Hostname
  • ASP.NET — Как создать поддомен в IIS?
  • Что это значит?? Bad Request (Invalid Hostname)
  • Bad Request — Invalid Hostname while connect to localhost
comments powered by HyperComments