I had an interesting problem on one of my web servers recently, I found that after I rebooted my machine for a patch that none of my IIS 6 websites came up. When I went into IIS 6 and looked all sites were turned off, the log files didn’t provide much help either. So I started to think what could have caused the problem, the patch was a basic security patch that shouldn’t affect much, but I had recently installed Adobe Flash Interactive Media Server, which I would soon find was the issue.
So what made this happen? Well I found that on boot up the Flash interactive server is hosted on port 80 and it takes its IP on port 80 I am using to host its webapp and it holds on to it. Well when IIS goes to start up it tries to take all the IPs under control and if they are using port 80 it conflicts. When it gets to the one that the Flash program was holding it couldn’t do anything. So they got into a tug of war which IIS 6 loses and instead of just skipping the IP it shuts down all of the IIS websites. Normally IIS would start up with all the IPs but when it can’t figure out this problem with the FMS IP and port 80 it freaks out. There is a work around that is moderately complex but works very well to alleviate this problem.
Here is what I did on the server to prevent FMS and IIS from conflicting. You can create an IP inclusion list that is read when IIS starts up. Now only sites on this server whose IP addresses are in the inclusion list will start and IIS can skip the IP that is being used by the FMS server on port 80 and there won’t be any problems. This fix will work for any problem you are having where an application is hosted on Port 80 and you are seeing the problem where IIS won’t start due to the conflict.
Open a command prompt and type in C:InetpubAdminscripts folder (This assumes you installed everything on the default drive, if you didn’t change this letter to match where the Inetpub folder is located). Next type the following line at the command prompt:
“cscript adsutil.vbs set w3svc/disablesocketpooling true”.
Then run IISRESET and restart the WWW service through the services window.
To do an IISRESET:
Once it says successful type exit and hit enter
To restart the WWW Service:
Type Service.msc, hit enter
Click on World Wide Web Publishing Service
Click Restart the service (link in upper left hand corner of window)
Close the window
Next you need to install the Support tools (suptools.msi on the W2k3 CD). You can install these by putting in your Windows Server 2003 disk, it will open up with some options, do the following:
Perform additional tasks
Browse the CD
Double click Support
Double click Tools
Double click SUPTOOLS.MSI
Enter the information it asks for and click next
Click Finish (after the install completes)
Once the tools are installed you will open a command prompt window. Type the following:
“httpcfg set iplisten -i “,
where is the IP address you want to add to the inclusion list. When this succeeds you will get the following response: “HttpSetServiceConfiguration completed with 0”. After the IP address is added to the list you can view the list of IPS using the command: “httpcfg query iplisten”.
The IP inclusion list is checked via IIS during startup of the HTTP service. If you make changes to the list, you must restart the service each time. To restart the HTTP service, open a command window and type “net stop http /y”. Then to start the HTTP service, type “net start w3svc” at the command prompt. You must add each IP address that is used by a Web site in IIS. If you add a new Web site in IIS you have to add the IP address for that site into the inclusion list, if you don’t do this for each website the Web site will not start.
Well I hope this solves you problem with FMS and IIS 6 fighting and causing IIS 6 to stop all of your websites.