IISExpress возвращает ошибку 503 от удаленных компьютеров

Я пытаюсь проверить веб-сайт, который я запускал в локальном экземпляре IISExpress, с некоторыми другими машинами / устройствами в моей локальной сети. Я запускаю Win7 Pro.

Когда я сначала пытаюсь перейти на свою машину с другого компьютера в сегменте локальной сети, я получаю ошибку 400: имя хоста недействительно.

Я понимаю, что мне нужно предоставить удаленный доступ к ACL с помощью команды в расширенной командной строке, например:

netsh http add urlacl url=http://mymachinename:50333/ user=everyone

Теперь я получаю сообщение об ошибке 503.

Брандмауэр Windows в настоящее время отключен, и я могу просмотреть мой локальный экземпляр IISExpress с адресом http://localhost:50333

Какова окончательная часть этой конфигурации?

    Похоже, что вам не хватает записи информации привязки в файле applicationhost.config.

    1. Откройте файл applicationhost.config. Возможные местоположения:

      • %userprofile%\Documents\IISExpress\config\applicationhost.config
      • $(solutionDir)\.vs\config\applicationhost.config (VS2015)
      • В противном случае проверьте вывод iisexpress.exe чтобы убедиться.
    2. Найдите свою запись в WebSite и добавьте следующую привязку к имени вашего компьютера.

         
    3. Перезапустить IIS Express

    Для меня работало только одно.

    использование *:portnumber:* нехорошо. Да, после этого, и убедитесь, что брандмауэр Windows открыт, я могу подключиться к порту, но у меня все еще есть ошибка «503».

    Я проверил несколько вещей локально и обнаружил, что работает только http: // localhost . Использование реального IP-адреса (а не 127.0.0.1, но, например, 192.168.1.50), все равно возвращает 503 даже на локальном компьютере. Я попытался использовать настоящее имя хоста в привязках, но IIS Express отказался запускать. Это может иметь какое-то отношение к тому, как было решено имя хоста. Я не исследовал это дальше.

    Наконец, я использовал эту конфигурацию:

       

    Таким образом, я смог подключиться с удаленной машины, используя http://192.168.1.50:53351 .

    После того, как я потратил больше 3 часов на такую ​​полную тему, я решил поделиться с вами своей установкой. Моя конфигурация – Visual Express 2012 для веб-обновления 4 на windowsх 8. Это был мой первый возврат к MS VS после учебы (по крайней мере 8 лет), и теперь я уверен, что правила linux. На django этот тип установки занял у меня 10 минут поисковой документации.

    1. отключить брандмауэр для тестирования

       netsh advfirewall set allprofiles state off 
    2. установочные привязки в моем случае локальный адрес localIP = 192.168.1.102 (потому что ссылки не могут содержать нечисловой домен, используйте его ниже вместо mylocaldomain.com, см. политику stackoverflow) в Documents\IISExpress\config\applicationhost.config

           
    3. автоматически добавить автозапуск для службы запуска ISS Express

        
    4. Добавьте некоторые странные правила на http-сервер (я до сих пор не знаю, если это nesseary)

       netsh http add urlacl url=http://mylocaldomain.com:53351/ user=everyone 
    5. запускать IISExpress вручную не из VS IDE

    6. вы увидите, что ISSExpress регистрирует привязки
    7. запустите браузер http://mylocaldomain.com:53351 если он работает, мы можем добавить правило брандмауэра
    8. добавить правило брандмауэра

       netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=53351 remoteip=any action=allow 

    установить remoteip на любой, если вы хотите получить доступ к серверу из внешнего мира, если вы хотите получить доступ к локальной сети, используйте localsubnet

    1. запустить межсетевой экран

       netsh advfirewall set allprofiles state on 
    2. повторите проверку, если все работает на локальном и общедоступном ip

    Удачи тебе

    Рафал

    Обнаружена проблема, связанная с плохим отображением urlacl. Чтобы понять это:

     netsh http show urlacl 

    и ищите такие вещи, как http://+:80/ или порт, к которому вы привязываетесь.

    Затем используйте

     netsh http delete url= 

    Это поставило проблему для меня.

    Ничто не сработало для меня. Наконец, я нашел iisexpress-proxy

    См. Мой ответ https://stackoverflow.com/a/33623399/631527

    Что мне помогло, щелкнул правой кнопкой мыши значок «IISExpress», «Показать все приложения». Затем, выбрав веб-сайт, я увидел, какой aplicationhost.config он использует, и исправление пошло отлично.

    Конфигурация IISExpress

    Проблема заключается в обновлении файла applicationhost.config внутри веб-папки вместо решения. Файл конфигурации решения – это тот, который нужно изменить

    Что касается ответа Антони Риццоло: в Windows 8.1 мне пришлось набирать так:

     netsh http delete urlacl url= 

    Например:

     netsh http delete urlacl url=http://+:8689/ 
    Давайте будем гением компьютера.