I recently worked on a Web Service installation case in IIS7. It may help guys who are planning to migrate from IIS6 to IIS7.
Customer has a web service installation files complied by vs.net 2005. It was used to run on an IIS6 server and install web service successfully. Now customer upgrade the system to IIS7 and run the installation package, however, it failed to install Web Service in IIS7 and receive “Installation Incomplete” error message.
Also, there is an error message in Event Log:
Log Name: Application
Date: 2/9/2009 1:44:50 PM
Event ID: 1033
Task Category: None
Computer: computer name
Windows Installer installed the product. Product Name: XXXXXX WebService. Product Version: 1.0.0. Product Language: 1033. Installation success or error status: 1603.
Customer is able to setup Web Service manually in IIS7.
We reproduced the same error on Windows 2008 with IIS7 by running the installation package.
To troubleshoot the issue, execute the install by command msiexec and write the steps into log files as below:
In Command Prompt with Run as Administer
msiexec -i d:\ws\XXXXXXWebServiceSetup.msi -l*v install.log
Got WEBCA_SetTARGETSITE. Return value 3 in install.log, details as below
(c) (60:2C) [16:54:44:502]: Doing action: WEBCA_SetTARGETSITE
Action 16:54:44: WEBCA_SetTARGETSITE.
Action start 16:54:44: WEBCA_SetTARGETSITE.
MSI (c) (60:2C) [16:54:44:502]: Note: 1: 2235 2: 3: ExtendedType 4: SELECT `Action`,`Type`,`Source`,`Target`, NULL, `ExtendedType` FROM `CustomAction` WHERE `Action` = 'WEBCA_SetTARGETSITE'
MSI (c) (60:C8) [16:54:44:534]: Invoking remote custom action. DLL: C:\Users\sophialu\AppData\Local\Temp\MSI7150.tmp, Entrypoint: SetTARGETSITE
Action ended 16:54:44: WEBCA_SetTARGETSITE. Return value 3.
Since the MSI is created by VS2005, it uses IIS6 script in the installation package. When the customer was trying to install Web Service in IIS7, it is not compatible with it.
To address this issue, we need to install the IIS 6 Metabase Compatibility Component to the destination computer.
To install the IIS 6.0 Management Compatibility Components by using the Windows Server 2008 Server Manager
- Click Start, click Administrative Tools and then Server Manager.
- In the left navigation pane, expand Roles, and then right-click Web Server (IIS) and select Add Role Services.
- On the Select Role Services pane, scroll down to IIS 6 Management Compatibility.
- Select the check boxes for IIS 6 Metabase Compatibility and IIS 6 Management Console.
- Click Next from the Select Role Services pane, and then click Install at the Confirm Installations Selections pane.
- Click Close to leave the Add Role Services wizard.
This installs an API for the new configuration system that is compatible with the old Metabase APIs (which is what VS 2005 uses).
After installing this option in IIS7, the setup.exe is working as expected.
In IIS 7 the server configuration is based on distributed XML files that contain the settings for not only IIS, but also ASP.Net and other components. Microsoft has done away with the Metabase in favor of a much more open system, but some pre-IIS 7 applications (such as Virtual Server R2 SP1) rely on the metabase as part of their installation process.
IIS 6 Compatibility Components Not Installed