Назад | Перейти на главную страницу

Как запретить IIS принимать TCP-соединения при остановке?

Я запускаю 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.

http://msdn.microsoft.com/en-us/library/microsoft.web.administration.loadbalancercapabilities(v=VS.90).aspx

Это не типичное поведение. Перед IIS должен быть прокси-сервер или что-то в этом роде. Проверьте, появляется ли ошибка 404 в IE при просмотре самого сервера. Если вы этого не сделаете, как выглядит сеть между вашим ПК с веб-браузером и сервером IIS? Если вы получаете ошибку 404 на самом сервере, когда IE просматривает сайт IIS, значит, какая-то другая программа прослушивает порт 80.

Ошибка 404 - это ошибка HTTP, созданная HTTP-сервером. Что-то, что понимает HTTP, отвечает на ваш запрос через порт 80, создает сообщение об ошибке 404 и доставляет его в веб-браузер по протоколу HTTP.

Вы уверены, что останавливаете IIS, а не просто останавливаете один из виртуальных сайтов в IIS?