Menu

#1225 IIS extension failed on Vista SP1.

v3.0
closed
2012-09-15
2008-06-02
No

IIS extension failed to create WebSite/Virtual DIrectory on Vista SP1. IIS extension seems to require elevated privilege to read IIS metabase on Vista SP1 This problem was not happening Vista without SP1.

Please see the following information posted on WiX-users mailing list.

From: Hidemoto Yamauchi [mailto:yamau6809@gmail.com]
Sent: Friday, May 30, 2008 14:08
To: wix-users@lists.sourceforge.net; Rob Mensching
Subject: Re: [WiX-users] IIS extension failed on Vista SP1.

I need to make a correction for my statement in the previous email.

Adding 'msidbCustomActionTypeInScript +
msidbCustomActionTypeNoImpersonate', of course I have to add
''msidbCustomActionTypeInScript' to specify
'msidbCustomActionTypeNoImpersonate'', does prevent the error, but
WebSite/Virtual Directory are not created for some reason. So
specifiying this flag defeating purpose and this can not be used as a
workaround.

So only workaround for noe is executing MSI from admin prompt.

Sorry for posting incorrect information.

Thanks,
Hidemoto Yamauchi

On Fri, May 30, 2008 at 11:57 AM, Hidemoto Yamauchi yamau6809@gmail.com w=
rote:

I have not checked the first point. I have to write small C/C++
program to verify the requirement to use API. Or I have to dig the
documentation.

For the second point, I only need to do one of them to successfully insta=
ll.

Thanks,
Hidemto Yamauchi

On Fri, May 30, 2008 at 11:29 AM, Rob Mensching
Rob.Mensching@microsoft.com wrote:

This is scary. Is it possible that IIS changed the access to their API =
to require elevated privileges to read the Metabase in SP1? That would b=
e very bad.

Did you have to do both steps (admin prompt and mark it Impersonate=3D"n=
o") to successfully install?

-----Original Message-----
From: wix-users-bounces@lists.sourceforge.net [mailto:wix-users-bounces@=
lists.sourceforge.net]
On Behalf Of Hidemoto Yamauchi
Sent: Friday, May 30, 2008 08:28
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] IIS extension failed on Vista SP1.

Hello,

I am using V3.0.4116 to build a MSI file and I encountered the issue
when I tried to install a WiX generated MSI that creates a
WebSite/Virtual directory on Vista with SP1. The same MSI file could
successfully be installed on Vista without SP1.

From the error code E_ACCESSDENIED in the log file, it seems to me
that the issue is related to permissions to execute a custom action.
Based on that, I found two work around for the issue.
The first one is using Msiexec from administrator command prompt.
The second one is modifying the MSI with ORCA. So that 'ConfigureIIs'
custom action is executed in system context by adding
'msidbCustomActionTypeNoImpersonate'.
However, both of them are not practical.

The following is more detail.

First, the following is the snippet from the wxs file.
...
<component id="user-content-3D"C_VDir"" guid="3D"{A93949CE-DBD5-408e-825D-FF2595E1B6EE}"" diskid="3D"1"" keypath="3D"yes"">
<createfolder>
<iis:webvirtualdir id="user-content-3D"VD_WiXWebDeploy"" alias="3D"WiXWebDeploy"" directory="3D"INSTALLLOCATION"" website="3D"InstallToVdir"">
<iis:webapplication id="user-content-3D"WA_WiXWebDeploy"" name="3D"WiXWebDepl=" oy"="">
</iis:webapplication></iis:webvirtualdir>
</createfolder></component>
...
<iis:website id="user-content-3D"InstallToVdir"" description="3D"Default" web="" site"="">
<iis:webaddress id="user-content-3D"InstallToVDirRootWebAddress"" port="3D"80"/">
</iis:webaddress></iis:website>
...

And, the following is the snippet from the log file which contains some =
detail.
...
MSI (s) (FC:C4) [15:30:04:439]: Doing action: ConfigureIIs
Action 15:30:04: ConfigureIIs. Configuring IIS
Action start 15:30:04: ConfigureIIs.
MSI (s) (FC:E0) [15:30:04:470]: Invoking remote custom action. DLL:
C:\Windows\Installer\MSIBA5F.tmp, Entrypoint: ConfigureIIs
MSI (s) (FC!B8) [15:30:04:611]: PROPERTY CHANGE: Adding
StartMetabaseTransaction property. Its value is 'ScaConfigureIIs'.
MSI (s) (FC!B8) [15:30:04:627]: Doing action: StartMetabaseTransaction
Action 15:30:04: StartMetabaseTransaction. Starting IIS Metabase Transac=
tion
Action start 15:30:04: StartMetabaseTransaction.
1: Starting IIS Metabase Transaction
Action ended 15:30:04: StartMetabaseTransaction. Return value 1.
MSI (s) (FC!B8) [15:30:04:642]: PROPERTY CHANGE: Adding
RollbackMetabaseTransaction property. Its value is 'ScaConfigureIIs'.
MSI (s) (FC!B8) [15:30:04:658]: Doing action: RollbackMetabaseTransactio=
n
Action 15:30:04: RollbackMetabaseTransaction. Rolling back IIS
Metabase Transaction
Action start 15:30:04: RollbackMetabaseTransaction.
1: Rolling back IIS Metabase Transaction
Action ended 15:30:04: RollbackMetabaseTransaction. Return value 1.
MSI (s) (FC!B8) [15:30:04:673]: PROPERTY CHANGE: Adding
CommitMetabaseTransaction property. Its value is 'ScaConfigureIIs'.
MSI (s) (FC!B8) [15:30:04:673]: Doing action: CommitMetabaseTransaction
Action 15:30:04: CommitMetabaseTransaction. Committing IIS Metabase Tran=
saction
Action start 15:30:04: CommitMetabaseTransaction.
1: Committing IIS Metabase Transaction
Action ended 15:30:04: CommitMetabaseTransaction. Return value 1.

ConfigureIIs: Error 0x80070005: Failed to find web root
ConfigureIIs: Error 0x80070005: failed to read IIsWebSite table
Error 26002. Failed to read IIsWebSite table. (-2147024891 )
MSI (s) (FC!B8) [15:30:06:427]: Product: WiXWebDeploy -- Error 26002.
Failed to read IIsWebSite table. (-2147024891 )

Action ended 15:30:06: ConfigureIIs. Return value 3.
..
I removed MSIHANDLE messages from above.

Does anyone have any suggestion?

Thanks
Hidemoto Yamauchi

Discussion

  • wix-ray

    wix-ray - 2008-07-17

    Logged In: YES
    user_id=2108411
    Originator: NO

    I have the same problem.

     
  • Michael S.

    Michael S. - 2008-07-29

    Logged In: YES
    user_id=2053037
    Originator: NO

    Yes, this is indeed a problem that I also would like to have solved ASAP.

    By the way, isn't it true that when using <iis:website> under a <fragment> the installer would always try to connect/open to the website and fail on Vista SP1? </fragment></iis:website>

    <fragment>
    <iis:website id="user-content-DefaultWebSite" description="Default Web Site">
    <iis:webaddress id="user-content-AllUnassigned" port="80">
    </iis:webaddress></iis:website>
    </fragment>

    It would be beneficial if this could be attached to a Feature. Imagine an installion for a client/server system where server features are only installed if install-user wants it (e.g. selected in a custom install). The setup of a website is a server feature so it should be attached to a website, illustrated by

    <fragment>
    <feature id="user-content-WebServer" ...="">
    ...</feature></fragment>

      <iis:WebSite Id="DefaultWebSite" Description="Default Web Site">
        <iis:WebAddress Id="AllUnassigned" Port="80"/>
      </iis:WebSite>
    </Feature>
    

    So it should only try to connect/open the default web site if the Feature is selected for install, otherwise it should not do anything.

     
  • Hidemoto Yamauchi

    I just tested the issue and confirmed that the problem was fixed. Thank you.

     
MongoDB Logo MongoDB