Automatic account creation is now enabled. Captcha authentication required for account creation and editing unless you are trusted here.

Web Directories

From WiX Wiki at MindCapers

Jump to: navigation, search

Some Snippet

In the example below, the FPP extension doesn't always get registered.

 
 <Component Id='ContactCardWebVDirComponent' Guid='171ED91C-1683-4226-A547-70F81C1A9E0D'>
   <WebVirtualDir Id='ContactCardWebVDir' WebSite='WebServicesWebSite' Alias='ContactCard' Directory='ContactCardWebServiceFolder' DirProperties='ReadAndExecute'>
     <WebApplication Id='ContactCardWebApp' Name='ContactCard Web App' Isolation='medium' WebAppPool='SpacesAppPool'>
       <WebApplicationExtension Extension='aspx' CheckPath='no' Executable='[FRAMEWORKDIR]aspnet_isapi.dll' Script='yes' Verbs='GET,HEAD,POST,DEBUG' />
       <WebApplicationExtension Extension='asmx' CheckPath='no' Executable='[FRAMEWORKDIR]aspnet_isapi.dll' Script='yes' Verbs='GET,HEAD,POST,DEBUG' />
       <WebApplicationExtension Extension='fpp' CheckPath='no' Executable='[FRAMEWORKDIR]aspnet_isapi.dll' Script='yes' Verbs='GET,HEAD,POST,DEBUG' />
     </WebApplication>
   </WebVirtualDir>
 </Component>
 ...
 <Feature Id='WebServicesFeature'
    Title='Web Services'
    Level='1'
    InstallDefault='local'
    TypicalDefault='install'
    AllowAdvertise='no'
    ConfigurableDirectory='INSTALLDIR'>
      <ComponentRef Id='WebRootComponent' />
      <ComponentRef Id='ProbeComponent' />
      <ComponentRef Id='SpacesAppPoolComponent' />
      <ComponentRef Id='WebServicesWebSiteComponent' />
      <ComponentRef Id='ContactCardWebVDirComponent' />
   ...
  </Feature>
 

Some Other Snippet

I tried to use :

     <WebVirtualDir Id='TestWebVirtualDir' Alias='Test' 
          Directory='InstallDir' WebSite='DefaultWebSite'>
         <WebApplication Id='TestWebApplication' Name='Test' />
     </WebVirtualDir>

And

    <WebSite Id='DefaultWebSite' Description='Default Web Site'>
        <WebAddress Id='AllUnassigned' Port='80' />
    </WebSite>

But I get an error indicating the the "IIS tables" could not be accessed. Any ideas on what I could change so that I can create a virtual directory.

Next I would like to install a .NET Windows Service. If I do this manually I use installutil. Does the following also use the equivalent?

    <ServiceInstall Id='MyServiceInstall' DisplayName='My Test Service'
        Name='MyServiceExeName'
        ErrorControl='normal' Start='auto' Type='ownProcess' Vital='yes' />
    <ServiceControl Id='MyServiceControl' Name='MyServiceExeName'
        Start='install' Stop='uninstall' Remove='uninstall' />

Is there an explanation somewhere about these tasks and what the options available are?

Answer

This is a known problem, see bug #1067343: http://sourceforge.net/tracker/index.php?func=detail&aid=1067343&group_id=105970&atid=642714

The workaround is to set the property SKIPCONFIGUREIIS to "1" when you are not installing any components that require IIS configuration.

No, the SKIPCONFIGUREIIS hackworkaround wasn't part of v3 because v3 supports overridable custom action references:

 
 <InstallExecuteSequence>
    <Custom Action="ConfigureIIs" After="InstallFiles">MYCONDITION</Custom>
 </InstallExecuteSequence>
 
Personal tools