Run a Windows 2003 server with multiple IP Addresses and have a non-IIS based website run on port 80.

Is there a way to run other applications on port 80 on a Windows 2003 server along with IIS 6? I have a server with multiple IP Addresses (192.168.1.10, 192.168.1.12, 192.168.1.13). I need to run two of these websites using IIS each having their own IP Address. The third IP Address we have to run a 3rd party application that is required to run on this server and use the third IP Address. I’m having problems getting IIS not listen on port 80 for the one IP Address. I have tried using this KB article without any luck. http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B813368 ‘IIS 6.0: Setting Metabase Property DisableSocketPooling Has No Effect’

This is possible, to achieve this you will need to use a utility called httpcfg.exe. This utility is included when you install the support tools from the Windows 2003 CD. The HTTP Configuration Utility can be used to manage many of the tasks associated with web server.  This particular feature of HTTP utility creates an ‘inclusion list’ on the server.   The inclusion list includes each IP Address used by a site in Internet Information Services (IIS) Manager. If you bind a Web site to an IP address that is not added to the inclusion list, the Web site will not start. One of the drawbacks of this is every time a website is added to the server, IISAdmin and all IIS-related services need to be stopped, add the new ip address to the inclusion list and then restart IISAdmin and related sites.
 

When adding websites make sure you add the IP:PORT to the httpcfg look up table


It might be necessary to do this if none of the sites come up You might see an error when starting inside IIS manager about process in use.

 
  • net stop http /y – (let it stay idle for 30 seconds)
  • then add to the ip inclusion list.
  • then start the services

  • ( net start http )
    ( net start w3svc )
     

    Sample inclusion list

    IP : 192.168.1.11:80
    ——————————————————————————
    IP : 192.168.1.12:80
    ——————————————————————————

    Netstat Output

    The netstat command is used to display the TCP/IP network protocol statistics and information. Notice in the netstat output the 192.168.0.11 is the primary IP Address of the machine. The 192.168.0.11 and 192.168.0.12 are listening on TCP port 80 and port 2680 (Sharepoint services for FrontPage extensions). Each of these IP Addresses has an IIS-related configured.

    Notice the 192.168.0.13 IP Address is only listening on TCP Port 80. The UDP ports are also listed but not aren’t relevant to this subject.


    Active Connections

    Proto Local Address Foreign Address State
    TCP 0.0.0.0:21 0.0.0.0:0 LISTENING
    TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
    TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
    TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING
    TCP 0.0.0.0:1027 0.0.0.0:0 LISTENING
    TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING
    TCP 0.0.0.0:1836 0.0.0.0:0 LISTENING
    TCP 0.0.0.0:1842 0.0.0.0:0 LISTENING
    TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING
    TCP 0.0.0.0:8009 0.0.0.0:0 LISTENING
    TCP 0.0.0.0:10000 0.0.0.0:0 LISTENING
    TCP 192.168.0.11:80 0.0.0.0:0 LISTENING
    TCP 192.168.0.11:139 0.0.0.0:0 LISTENING
    TCP 192.168.0.11:2680 0.0.0.0:0 LISTENING
    TCP 192.168.0.12:80 0.0.0.0:0 LISTENING
    TCP 192.168.0.12:2680 0.0.0.0:0 LISTENING
    TCP 192.168.0.13:80 0.0.0.0:0 LISTENING
    TCP 127.0.0.1:1851 127.0.0.1:8005 TIME_WAIT
    TCP 127.0.0.1:1853 127.0.0.1:8009 TIME_WAIT
    TCP 127.0.0.1:8005 0.0.0.0:0 LISTENING
    UDP 0.0.0.0:135 *:*
    UDP 0.0.0.0:161 *:*
    UDP 0.0.0.0:445 *:*
    UDP 0.0.0.0:500 *:*
    UDP 0.0.0.0:1033 *:*
    UDP 0.0.0.0:1434 *:*
    UDP 0.0.0.0:3456 *:*
    UDP 0.0.0.0:4500 *:*
    UDP 192.168.0.11:123 *:*
    UDP 192.168.0.11:137 *:*
    UDP 192.168.0.11:138 *:*
    UDP 192.168.0.12:123 *:*
    UDP 192.168.0.11:123 *:*
    UDP 127.0.0.1:123 *:*
    UDP 127.0.0.1:3456 *:*

    Microsoft KB reference articles

    IIS Binds To All Available IP Addresses When It Starts :

    How to Disable Socket Pooling:

    HTTPCFG reference