Я запускаю IIS 7 на машине с Windows 2008 R2 и обнаружил, что остановка IIS не мешает ему принимать соединения.
Остановка IIS не приведет к уничтожению даже активного сеанса telnet на порту 80. Сервер продолжает показывать 404 страницы.
Я что-то упустил? Мой вариант использования заключается в том, что мне нужно заблокировать порт 80 для балансировщика нагрузки, чтобы вывести мой сервер из пула.
Показывает ли netstat, что использует порт?
Я бы также попробовал инструменты sysinternals, такие как procmon и process explorer, чтобы сузить круг причин, по которым порт может оставаться открытым (и tcpview).
Вам не хватает чего-то простого.
LoadBalancerCapabilities определяет поведение HTTP.SYS при остановке пула приложений.
По умолчанию HTTP 503; если ваш LB понимает только коды ошибок TCP, а не HTTP, установите значение выше Сброс TCP должен сделать свое дело.
Остановка WAS обычно не требуется для удаления узла из кластера LB, но это зависит от возможностей LB.
Это не типичное поведение. Перед IIS должен быть прокси-сервер или что-то в этом роде. Проверьте, появляется ли ошибка 404 в IE при просмотре самого сервера. Если вы этого не сделаете, как выглядит сеть между вашим ПК с веб-браузером и сервером IIS? Если вы получаете ошибку 404 на самом сервере, когда IE просматривает сайт IIS, значит, какая-то другая программа прослушивает порт 80.
Ошибка 404 - это ошибка HTTP, созданная HTTP-сервером. Что-то, что понимает HTTP, отвечает на ваш запрос через порт 80, создает сообщение об ошибке 404 и доставляет его в веб-браузер по протоколу HTTP.
Вы уверены, что останавливаете IIS, а не просто останавливаете один из виртуальных сайтов в IIS?