Я пытаюсь протестировать веб-сайт, который я использую в локальном экземпляре IISExpress, с некоторыми другими машинами / устройствами в моей локальной сети. Я использую Win7 Pro.
Когда я впервые пытаюсь перейти на свой компьютер с другого компьютера в моем сегменте локальной сети, я получаю сообщение об ошибке 400: имя хоста неверно.
Я понимаю, что мне нужно предоставить удаленный доступ к ACL с помощью команды в командной строке с повышенными правами, например:
netsh http add urlacl url=http://mymachinename:50333/ user=everyone
Теперь я получаю 503 сервис недоступна ошибка.
Брандмауэр Windows в настоящее время отключен, и я могу просмотреть свой локальный экземпляр IISExpress по адресу http://localhost:50333
Какова последняя часть этой головоломки конфигурации?
источник
http://mymachinename:50333/
с вашего компьютера?Ответы:
Похоже, вам не хватает обязательной информации в файле applicationhost.config.
Откройте файл applicationhost.config. Возможные места:
%userprofile%\Documents\IISExpress\config\applicationhost.config
$(solutionDir)\.vs\config\applicationhost.config
(VS2015)iisexpress.exe
чтобы быть уверенным.Найдите свою запись на веб-сайте и добавьте следующую привязку с именем вашего компьютера.
Перезапустите IIS Express
источник
iisexpress.exe
Внимательно прочитайте вывод, чтобы увидеть, какой файл конфигурации он использует.Была только одна вещь, которая работала на меня.
использование
*:portnumber:*
было бесполезно. Да, после того, как я это сделал и убедился, что брандмауэр Windows открыт, я смог подключиться к порту, но все равно получил ошибку «503».Я проверил несколько вещей локально и обнаружил, что работает только http: // localhost . Используя реальный IP-адрес (не 127.0.0.1, а, например, 192.168.1.50), все равно вернул 503 даже на локальном компьютере. Я пытался использовать настоящее имя хоста в привязках, но IIS Express отказался запускаться. На самом деле это может быть связано с тем, как разрешается имя хоста. Я не исследовал это дальше.
Наконец, я закончил с использованием этой конфигурации:
Таким образом, я смог подключиться с удаленного компьютера с помощью
http://192.168.1.50:53351
.источник
<binding protocol="https" bindingInformation="*:44300:*" />
<binding protocol="http" bindingInformation="*:8888:*" />
edit: действительно пытался понять УДАЧУ, я ушел :).Потратив более 3 часов на такой полный предмет, я решил поделиться с вами своими настройками. Моя конфигурация - Visual Express 2012 для веб-обновления 4 на Windows 8. Это было мое первое возвращение в MS VS со времен обучения (не менее 8 лет), и теперь я уверен, что правила Linux. На django такой вид установки занял у меня 10 минут поиска документации.
выключите брандмауэр для тестирования
привязки установки в моем случае локальным адресом является localIP = 192.168.1.102 (поскольку ссылки не могут содержать нечисловой домен, используйте его ниже вместо mylocaldomain.com, см. политику stackoverflow) в
Documents\IISExpress\config\applicationhost.config
добавить автозапуск для службы запуска ISS Express автоматически
Добавьте некоторые странные правила на http-сервер (я до сих пор не знаю, если это необходимо)
запускать IISExpress вручную не из VS IDE
http://mylocaldomain.com:53351
если он работает, тогда мы можем добавить правило брандмауэрадобавить правило брандмауэра
установите значение remoteip на любое, если вы хотите получить доступ к вашему серверу из внешнего мира, если вы хотите получить доступ к локальной сети, используйте localsubnet
запустить брандмауэр
проверьте еще раз все ли работает на локальном и публичном ip
Желаю тебе удачи
Рафал
источник
netsh http delete urlacl url=http://*:55416/
(замените порт на ваш порт)localhost
. Я обнаружил , что гость (Windows) имя машины должно было быть в привязках вapplicationhost.config
, и на хосте (Mac) имя гостя машины необходимо , чтобы быть сопоставлено127.0.0.1
в/etc/hosts
. Только после этого запрос гостевой машины на хосте был успешным.Обнаружил, что проблема была связана с плохим отображением urlacl. Чтобы понять это:
и искать такие вещи, как
http://+:80/
или порт, к которому вы привязываете.Тогда используйте
Это решило проблему для меня.
источник
netsh http delete urlacl <yoururl>
У меня ничего не получалось. Наконец я нашел iisexpress-прокси
Смотрите мой ответ https://stackoverflow.com/a/33623399/631527
Другое решение
ngrok
источник
3028
. Я побежал,iisexpress-proxy 3028 to 12345
а затем./ngrok.exe http 12345
. ReЧто мне помогло, так это щелкнув правой кнопкой мыши значок «IISExpress», «Показать все приложения». Затем выбрав веб-сайт, я увидел, какой aplicationhost.config он использует, и исправление прошло отлично.
источник
Проблема заключается в обновлении файла applicationhost.config внутри веб-папки вместо решения. Файл конфигурации решения, который нужно изменить
источник
После решения @vikomall не забудьте запустить VS от имени администратора. Это исправить это для меня.
источник
Что касается ответа Энтони Риццоло: в Windows 8.1 мне приходилось печатать так:
Например:
источник
Ни один из ответов выше не работал для меня.
У меня было две записи в netsh для одного и того же сервиса
netsh http show urlacl
Один использует сильный подстановочный знак, другой использует слабый подстановочный знак.
Удаление одного со слабым подстановочным знаком сделало свою работу.
Подробнее о сильных и слабых подстановочных знаках в контексте netsh
https://docs.microsoft.com/en-gb/windows/desktop/Http/urlprefix-strings
источник