IIS7 re-installation failed due to HTTP service disabled

Symptom

 

Customer complained that he tried to re-install IIS7 as he found WWW service couldn't be started. However, the installation always failed and was reported "fatal error during installation".

Based on our experience, we uninstalled WAS (Windows Process Activation Service) first, and then tried to install IIS7 again. Unfortunately, we still got the same result.  IIS7 installation log looked like below:

[12/24/2010 12:04:34] [ ***** IIS 7.0 Component Based Setup ***** ]

[12/24/2010 12:04:34] "C:\Windows\System32\inetsrv\iissetup.exe" /install CoreWebEngine

[12/24/2010 12:04:34] Install of component CoreWebEngine succeeded!

[12/24/2010 12:04:34] Success!

[12/24/2010 12:04:34] [ End of IIS 7.0 Component Based Setup ]

[12/24/2010 12:04:34] [ ***** IIS 7.0 Component Based Setup ***** ]

[12/24/2010 12:04:34] "C:\Windows\System32\inetsrv\iissetup.exe" /install W3SVC

[12/24/2010 12:04:34] < !!FAIL!! > SERVICE_CONTROLLER::StartNamedService W3SVC result=0x8007042c

[12/24/2010 12:04:34] < !!FAIL!! > Install of component W3SVC result=0x8007042c

[12/24/2010 12:04:34] < !!FAIL!! > COMPONENT::ExecuteCommand result=0x8007042c

[12/24/2010 12:04:34] [ End of IIS 7.0 Component Based Setup ]

[12/24/2010 12:04:35] [ ***** IIS 7.0 Component Based Setup ***** ]

[12/24/2010 12:04:35] "C:\Windows\System32\inetsrv\iissetup.exe" /launch C:\Windows\System32\inetsrv\appcmd.exe reset config -section:system.webServer/security/access

...

NOTE: "0x8007042c" means : "The dependency service or group failed to start."

According to the log, it seemed that the W3SVC ever couldn't be started at all during installation. As W3SVC depends on two services: WAS and HTTP. To make the W3SVC service can started, these two dependency service must be started first. After confirming WAS can be started successfully, we found that the reason why W3SVC can't be started was because HTTP service is disabled due to some reason.

We tried to start HTTP service using CMD: NET START HTTP, but still failed.

Root Cause

 

For this case, customer installed Apache Tomcat  on this server which will also listen at PORT 80. As PORT 80 is listened by HTTP service by default, so Tomcat service  forced to disable HTTP service, which makes IIS7 reinstallation failed in the future.

Solution

 

1. Open regidit, navigate to [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP]:
         a) Change Start from 4 ( disabled) to 3 ( automatically)
         b) Delete "NoRun" key if this key exists

2. Reboot the server.

3. Reinstall IIS7 again.

Regards,

Winston