How do you prevent IIS accepting TCP connections when stopped?
Solution 1:
Does netstat show what is using the port?
I'd also try the sysinternals tools like procmon and process explorer to narrow down what could be causing the port to be held open (and tcpview)
Solution 2:
That's not typical behavior. You must have a proxy or something in front of IIS. Test to see if you get error 404 in IE ON the server browsing itself. If you don't, what does the network between your web browser PC and the IIS server look like? If you do get error 404 on the server itself with IE browsing the IIS site, some other program is listening on port 80.
Error 404 is an HTTP error generated by an HTTP server. Something that understands HTTP is responding to your request on port 80 and constructing an error 404 message and delivering it to the web browser via the HTTP protocol.
Are you sure you are stopping IIS and not just stopping one of the virtual sites in IIS?
Solution 3:
You're missing something simple.
LoadBalancerCapabilities determines the behaviour of HTTP.SYS when an Application Pool is stopped.
Default is an HTTP 503; if your LB only understands TCP and not HTTP error codes, setting the above to TCP Resets should do the trick.
Stopping WAS is not typically necessary to remove a node from an LB cluster, but that depends on LB capabilities.
http://msdn.microsoft.com/en-us/library/microsoft.web.administration.loadbalancercapabilities(v=VS.90).aspx