Knowledge Base

How to run the websites of IIS5/6 and IPCheck on one machine

Cette page n’existe pas en français en ce moment. Nous vous prions de nous excuser.

If you have a server with two IP addresses you can usually run two different webserver software products on port 80 of each IP. But if one of the two webservers is an IIS5 (W2k) and IIS6 (W2k3) you will fail with this effort due to the "Socket Pooling" feature of IIS.

With a default Windows installation you simply can not run other webservers like PRTG or IPCheck on port 80 while an IIS5 (Windows 2000) or IIS6 (Windows 2003) webserver is active on the server.

The problem here is "socket pooling" which causes IIS to bind to all IP addresses configured on the server, even if no website is defined for them in the IIS settings. Since each port/IP combination can only be used by one process at a time the webservers of PRTG and IPCheck can not access port 80 and will automatically switch to port 8080 upon startup.

So you must disable the socket pooling feature.

Disabling Socket Pooling for IIS6 (Windows 2003 Server)

To disable HTTP socket pooling on Windows 2003 you need a tool named httpcfg.exe which is available from the support tools on a Windows Server 2003 CD-ROM.

Installing the Windows 2003 Server Support Tools

The Support Tools are located in the \support\tools folder on the Windows 2003 CD-ROM. Navigate to that location and double click the "suptools.msi" file to start the installation wizard.

Disabling the Socket Pooling

Open a command prompt and type:

net stop http /y

This stops all IIS services.

Change to the folder where you just installed the Support Tools (e.g. C:\Program Files\Support Tools)

Now enter the following command, substitute the [IP] with the IP address on which you want to have IIS listening (this is NOT the IP address you want IPCheck or PRTG to use).

httpcfg set iplisten -i [IP]:80

This will tell IIS to listen to the [IP] in the future. A successful change will result in "HttpSetServiceConfiguration completed with 0" being displayed.

Now you must reboot the server in order for the the setting to take effect.

The process described above should be enough if the socket pooling setting was never edited before. Just in case you need to revoke a setting, the following command tell IIS6 to NOT listen to an IP/port combination.

Do disable listening to an IP adress/port for IIS6:

httpcfg delete iplisten -i 10.0.0.186:80

More Information

Microsoft article: IIS Binds To All Available IP Addresses When It Starts
http://support.microsoft.com/kb/259349

A quick look at the Windows 2003 support tools
http://www.windowsnetworking.com/articles_tutorials/Windows_2003_Support_Tools.html

Disabling Socket Pooling for IIS5 (Windows 2000)

Please see this knowledge base article: How to Disable Socket Pooling on IIS5/Windows 2000
http://support.microsoft.com/kb/238131

Applies to: All Versions