我在 Windows 2008 R2 机器上运行 IIS 7,发现停止 IIS 并不会阻止它接受连接。
停止 IIS 甚至不会终止端口 80 上的活动 telnet 会话。服务器继续显示 404 页面。
我是不是忽略了一些简单的事情?我的用例是,我需要阻止端口 80,以便负载均衡器将我的服务器从池中移除
答案1
netstat 能显示正在使用该端口的内容吗?
我还会尝试使用 sysinternals 工具(如 procmon 和 process explorer)来缩小可能导致端口保持打开状态的原因范围(和 tcpview)
答案2
这不是典型行为。您必须在 IIS 前面安装代理或其他程序。测试一下,看看在服务器上浏览 IE 时是否会出现 404 错误。如果没有,那么您的 Web 浏览器 PC 和 IIS 服务器之间的网络是什么样的?如果您在服务器上使用 IE 浏览 IIS 站点时出现 404 错误,则说明有其他程序正在监听端口 80。
错误 404 是 HTTP 服务器生成的 HTTP 错误。理解 HTTP 的程序会在端口 80 上响应您的请求,并构造错误 404 消息并通过 HTTP 协议将其传递给 Web 浏览器。
您确定要停止 IIS,而不是仅仅停止 IIS 中的一个虚拟站点吗?
答案3
你忽略了一些简单的东西。
负载均衡器功能确定应用程序池停止时 HTTP.SYS 的行为。
默认是HTTP 503;如果您的 LB 仅理解 TCP 而不是 HTTP 错误代码,请将上述内容设置为TCP 重置应该可以解决问题。
通常不需要停止 WAS 来从 LB 集群中删除节点,但这取决于 LB 功能。