Неверный запрос - неверное имя хоста ASP.net Visual Studio 2015

После отладки моего сайта в Visual Studio 2015 я могу посетить его через localhost: 50544. Я хотел бы посетить мой сайт на другом компьютере, с которого он обслуживается, и находится в той же сети. Для этого я должен был бы посетить этот адрес компьютеров, который является 192.168.1.13:50544.

Однако при посещении этого адреса я получаю сообщение об ошибке "Ошибочный запрос, неверное имя узла". Даже если я нахожусь на нем на том же компьютере, на котором работает веб-сайт.

Следуя советам здесь, я создал следующее правило брандмауэра Windows, а также попытался полностью отключить брандмауэр. изображение правила брандмауэра

Я использую IIS express и поэтому добавил в файл ~ ~\Documents\IISExpress\config\applicationhost.config

<binding protocol="http" bindingInformation=":8080:localhost" /> //original rule
<binding protocol="http" bindingInformation="*:50544:192.168.1.13" />

Но посещение 192.168.1.13:50544 на любом компьютере по-прежнему приводит к ошибке "Bad Request".

Ответ 1

Формат атрибута bindingInformation:

ip address:port:host header

Что вам нужно, это:

bindingInformation="192.168.1.13:50544:*"

Источник: https://www.iis.net/configreference/system.applicationhost/sites/site/bindings/binding?showTreeNavigation=true#006

Обновление:

Кажется, есть люди, которые ошибочно полагают, что этот ответ неверен. Прежде всего, прочитайте документацию (см. ссылку выше) и прочитайте примеры.

Во-вторых, IIS и IIS Express - это по сути один и тот же продукт. IIS Express был настроен так, что не администраторы могут запускать IIS на ПК разработчика, где они могут не иметь полных прав локального администратора. Несмотря на это, IIS и IIS Express используют одинаковые форматы файлов applicationHost.config, а это означает, что формат атрибута bindingInformation одинаков для обоих продуктов.

Причина того, что (неверная) строка :50544:192.168.1.13 bindingInformation работает, заключается в том, что (правильно или неправильно):

  • если заголовок хоста не указан

  • если в первой части поля информации о привязке нет соответствующего IP-адреса

... тогда IIS попытается сопоставить IP-адрес в части заголовка узла информационной строки привязки.

Правильный формат для IIS7+ и IIS Express: всегда был:

ip_address:port:host_header

Ответ 2

Вам нужно запустить Visual Studio в качестве администратора

В Visual Studio 2015 applicationhost.config находится папка в самом проекте. Esc MyProjectName\.vs\config, обратите внимание, что папка .vs может быть скрыта. Измените Ip, а не папку IISExpress.

Ваш <binding protocol="http" bindingInformation="*:50544:192.168.1.13" /> правильный.

Ответ 4

У меня была та же проблема с удаленным доступом, и я попробовал все эти советы, чтобы исправить это. Для меня помогла галочка "Разрешить анонимную аутентификацию" в конфиге веб-проекта.

Ответ 5

До сегодняшнего дня все работало нормально.

  • брандмауэр в порядке
  • VS работает в режиме администратора
  • Файл applicationhost.config в порядке

Я просто отключил "Enable Edit and continue" (в csproj), и он перестал работать. Я включил его снова, и мы снова идем.

Надеюсь это поможет