I have come across what I believe to be a bug. This is
the scenario:

Server with 2 or more IP addresses, lets say 10.0.0.1 and
10.0.0.2. I set up 2 web sites, A and B. I configure A
to listen on 10.0.0.1 and B to listen on 10.0.0.2 in the
IIS MMC. I do a netstat -an and see that TCP/80 is
listening on all IP's. So I use HTTPCFG.EXE to set
iplisten to my 2 ip addresses that I am using (httpcfg
set ip listen -i 10.0.0.1). I restart the system. I do
a netstat -an and notice now TCP/80 is correctly only
listening on 10.0.0.1:80 and 10.0.0.2:80. Now I go into
the IIS MMC and stop website B. I check with netstat
again and notice that the server is still listening on
10.0.0.2:80. IIS does not serve up any pages, but the
port is still open.

I know this is probably due to the new design of the
http.sys driver, but now the network loadbalancing driver
sees port 80 still open and continues to load balance
connections to a stopped website. With IIS5 I could stop
a website, and the port would no longer be listening.

This is huge problem, we can no longer stop one website
to do maintenance, upgrades, etc. Is there a work around
(other than taking down all the websites or removing the
IP address) or a fix for this? Can this be added as a
bugfix?

Steve

RE: IIS6 Socket Pooling Breaks Network Load Balancing by ganekar

ganekar
Fri Jul 30 12:41:48 CDT 2004

Hi,

It is by design as that IP will be added to kernel level httpsys driver.

To resolve this issue you could simply remove that IP from httpsys driver.

Run httpcfg delete iplisten -i 10.0.0.2
Run httpcfg query iplistern and make sure it has been removed.

HTH.

Cheers,
Ganesh Anekar
Microsoft Developer Support
Internet Information Server

*********************************************************************
>>Please do not send email directly to this alias. This is an online
account name for newsgroup participation only.<<

This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use.

© 2004 Microsoft Corporation. All rights reserved.
*********************************************************************


--------------------
>Content-Class: urn:content-classes:message
>From: "Steve" <anonymous@discussions.microsoft.com>
>Sender: "Steve" <anonymous@discussions.microsoft.com>
>Subject: IIS6 Socket Pooling Breaks Network Load Balancing
>Date: Fri, 30 Jul 2004 07:12:01 -0700
>Lines: 30
>Message-ID: <753001c4763f$2ed932e0$a501280a@phx.gbl>
>MIME-Version: 1.0
>Content-Type: text/plain;
> charset="iso-8859-1"
>Content-Transfer-Encoding: 7bit
>X-Newsreader: Microsoft CDO for Windows 2000
>Thread-Index: AcR2Py7WEVa6YWchTTyD802qZt+aag==
>X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4910.0300
>Newsgroups: microsoft.public.inetserver.iis
>Path: cpmsftngxa10.phx.gbl
>Xref: cpmsftngxa10.phx.gbl microsoft.public.inetserver.iis:314837
>NNTP-Posting-Host: tk2msftngxa13.phx.gbl 10.40.1.165
>X-Tomcat-NG: microsoft.public.inetserver.iis
>
>I have come across what I believe to be a bug. This is
>the scenario:
>
>Server with 2 or more IP addresses, lets say 10.0.0.1 and
>10.0.0.2. I set up 2 web sites, A and B. I configure A
>to listen on 10.0.0.1 and B to listen on 10.0.0.2 in the
>IIS MMC. I do a netstat -an and see that TCP/80 is
>listening on all IP's. So I use HTTPCFG.EXE to set
>iplisten to my 2 ip addresses that I am using (httpcfg
>set ip listen -i 10.0.0.1). I restart the system. I do
>a netstat -an and notice now TCP/80 is correctly only
>listening on 10.0.0.1:80 and 10.0.0.2:80. Now I go into
>the IIS MMC and stop website B. I check with netstat
>again and notice that the server is still listening on
>10.0.0.2:80. IIS does not serve up any pages, but the
>port is still open.
>
>I know this is probably due to the new design of the
>http.sys driver, but now the network loadbalancing driver
>sees port 80 still open and continues to load balance
>connections to a stopped website. With IIS5 I could stop
>a website, and the port would no longer be listening.
>
>This is huge problem, we can no longer stop one website
>to do maintenance, upgrades, etc. Is there a work around
>(other than taking down all the websites or removing the
>IP address) or a fix for this? Can this be added as a
>bugfix?
>
>Steve
>


RE: IIS6 Socket Pooling Breaks Network Load Balancing by Steve

Steve
Fri Jul 30 12:53:16 CDT 2004

Yes, but you realize this breaks your own network load=20
balancing solution... If I am restarting a website on one=20
server in a cluster, then the nlb algorithm will continue=20
to include it because TCP port 80 is still listening. And=20
moving functionality to kernel mode is great but not when=20
you take away functionality that was previously there.=20

Would I not have to restart W3SVC and HTTP after using=20
httpcfg delete iplisten -i 10.0.0.2 ?=20

I still consider this a bug when you want to shut down=20
one website but can't... there is no way to stop the=20
server from listening on that IP port 80 unless you stop=20
all websites on that server. Could also be considered a=20
security issue to me and a big issue to web hosting=20
providers.

If I open a support ticket would I have an opportunity to=20
get this treated as a bug and get a fix in the works?

Somewhat Dissatisfied Steve



>-----Original Message-----
>Hi,
>
>It is by design as that IP will be added to kernel level=20
httpsys driver.
>
>To resolve this issue you could simply remove that IP=20
from httpsys driver.
>
>Run httpcfg delete iplisten -i 10.0.0.2
>Run httpcfg query iplistern and make sure it has been=20
removed.
>
>HTH.
>
>Cheers,
>Ganesh Anekar
>Microsoft Developer Support
>Internet Information Server
>
>*********************************************************
************
>>>Please do not send email directly to this alias. This=20
is an online=20
>account name for newsgroup participation only.<<
>
>This posting is provided "AS IS" with no warranties, and=20
confers no rights.=20
>You assume all risk for your use.=20
>
>=A9 2004 Microsoft Corporation. All rights reserved.
>*********************************************************
************
>
>
>--------------------
>>Content-Class: urn:content-classes:message
>>From: "Steve" <anonymous@discussions.microsoft.com>
>>Sender: "Steve" <anonymous@discussions.microsoft.com>
>>Subject: IIS6 Socket Pooling Breaks Network Load=20
Balancing
>>Date: Fri, 30 Jul 2004 07:12:01 -0700
>>Lines: 30
>>Message-ID: <753001c4763f$2ed932e0$a501280a@phx.gbl>
>>MIME-Version: 1.0
>>Content-Type: text/plain;
>> charset=3D"iso-8859-1"
>>Content-Transfer-Encoding: 7bit
>>X-Newsreader: Microsoft CDO for Windows 2000
>>Thread-Index: AcR2Py7WEVa6YWchTTyD802qZt+aag=3D=3D
>>X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4910.0300
>>Newsgroups: microsoft.public.inetserver.iis
>>Path: cpmsftngxa10.phx.gbl
>>Xref: cpmsftngxa10.phx.gbl=20
microsoft.public.inetserver.iis:314837
>>NNTP-Posting-Host: tk2msftngxa13.phx.gbl 10.40.1.165
>>X-Tomcat-NG: microsoft.public.inetserver.iis
>>
>>I have come across what I believe to be a bug. This is=20
>>the scenario:
>>
>>Server with 2 or more IP addresses, lets say 10.0.0.1=20
and=20
>>10.0.0.2. I set up 2 web sites, A and B. I configure=20
A=20
>>to listen on 10.0.0.1 and B to listen on 10.0.0.2 in=20
the=20
>>IIS MMC. I do a netstat -an and see that TCP/80 is=20
>>listening on all IP's. So I use HTTPCFG.EXE to set=20
>>iplisten to my 2 ip addresses that I am using (httpcfg=20
>>set ip listen -i 10.0.0.1). I restart the system. I=20
do=20
>>a netstat -an and notice now TCP/80 is correctly only=20
>>listening on 10.0.0.1:80 and 10.0.0.2:80. Now I go=20
into=20
>>the IIS MMC and stop website B. I check with netstat=20
>>again and notice that the server is still listening on=20
>>10.0.0.2:80. IIS does not serve up any pages, but the=20
>>port is still open. =20
>>
>>I know this is probably due to the new design of the=20
>>http.sys driver, but now the network loadbalancing=20
driver=20
>>sees port 80 still open and continues to load balance=20
>>connections to a stopped website. With IIS5 I could=20
stop=20
>>a website, and the port would no longer be listening.
>>
>>This is huge problem, we can no longer stop one website=20
>>to do maintenance, upgrades, etc. Is there a work=20
around=20
>>(other than taking down all the websites or removing=20
the=20
>>IP address) or a fix for this? Can this be added as a=20
>>bugfix?
>>
>>Steve
>>
>
>.
>