IIS 503 «Служба недоступна» через HTTPS, HTTP работает нормально - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть веб-сайт, работающий в IIS 7.5. Когда я захожу на сайт через HTTP, все работает нормально. Когда я запускаю сайт по HTTPS, я немедленно получаю сообщение об ошибке HTTP 503 "Служба недоступна". Сертификат SSL, используемый на сайте, самогенерируется / самоподписывается.

Вот решения, которые я видел для подобных проблем, которые не применимы к этому сценарию:

  • Идентификация пользователя устарела
    • Причина: тот же пул приложений, который успешно работает по HTTP, используется с HTTPS
  • Пароль пользователя пула приложений изменен
    • Причина: тот же пул приложений, который успешно работает по HTTP, используется с HTTPS
  • Установите "Загрузить профиль пользователя" в false
    • Причина: это уже установлено в false. Опять же, тот же пул приложений, который успешно работает по HTTP, используется с HTTPS
  • .NET regiis
    • Причина: сайт / .NET уже успешно работает по протоколу HTTP, и сайт никогда не сталкивается с кодом .NET, поскольку ошибка 503 возвращается немедленно , даже после сброса IIS или web.config модификация
  • Перезагрузите IIS
    • Причина: я попробовал это
  • Перезапустить пул приложений
    • Причина: я попробовал это
  • Сайт> Расширенные настройки> Включенные протоколы> http, https
    • Причина: я попробовал это

1 Ответ

0 голосов
/ 30 апреля 2018

Комментатор Чад Котерн в этом блоге получил ответ и связал этот блог Microsoft от BretB. Проблема в этом случае заключается в том, что все на порте 443 было зарезервировано и «не позволяет W3SVC получить права на прослушивание на порту 80 при попытке запуска сайта. Кроме того, приложения, работающие в IIS, не нуждаются в явном резервировании для запуска, только приложения не IIS должны резервировать пространство имен URL, если они хотят использовать HTTP для прослушивания запросов. "

Вот шаги, чтобы определить, является ли это проблемой и как решить:

  1. Открыть командную строку
  2. Прогон: netsh http show urlacl url=https://+:443/
  3. Если что-то есть, тогда это ваша проблема. Порт 443 полностью зарезервирован и блокирует IIS.
    • Если необходимо зарезервировать порт 443 для приложения, работающего вне IIS, его необходимо зарегистрировать в пути к приложению (т. Е. http://+:443/appPath)
    • Если там ничего нет, тогда это может и не быть проблемой. Не нужно продолжать.
  4. Прогон: netsh http delete urlacl https://+:443/
  5. Попробуйте снова запустить приложение.

Обратите внимание, что вы также можете проверить порт 80 или любой другой порт, используя этот метод. Например, если порт 80 зарезервирован, а 443 - нет, тогда сайт по HTTPS будет работать, а HTTP - нет.

Showing the above commands and results

...