Hi, I need to understand how create conditional setup of my web application.
I have conditions, that specify in UI:
        (1) Use a Virtual Directory  or Separate Web Site
        (2) Use Windows Integrated Security or Default
        (3) ip, port, alias, ... it's not so important
If user select Windows Integrated Security installer must  add special 
settings for folder Shared/handlers, it in all cases mast be with 
AnonymousAccess
This installation should work on all x86 machines( IIS 5.1, IIS 6, IIS 7 ).
Unfortunately IIsSchema is not so flexible(Ex. 
WebVirtualDir.DirProperties couldn't be a property) I'm write like  this:

  <Fragment>
    <!-- parent web site definition PARENTSITE_VALUE - specify in UI -->
    <iis:WebSite Id='ParentWebSite' Description='parent site for asc' 
SiteId='[PARENTSITE_VALUE]' >
      <iis:WebAddress Id='DefaultWebAddress' Port='80'/>
    </iis:WebSite>

    <!--default security properties-->
    <iis:WebDirProperties Id='IIS.DefaultWebDirProperties'
                          DefaultDocuments="Default.aspx"
                          WindowsAuthentication="no"
                          AnonymousAccess="yes"/>

    <!--integrated security properties-->
    <iis:WebDirProperties Id='IIS.WinIntegratedWebDirProperties'
                          DefaultDocuments="Default.aspx"
                          WindowsAuthentication="yes"
                          AnonymousAccess="no"/>

    <!-- separated apppool for application -->
    <Component Id="IISCOMP.WebAppPool" Guid="....." 
Directory="WEBAPPFOLDER">
      <CreateFolder />
      <iis:WebAppPool Id="IIS.AppPool" Identity="networkService"  
Name="AscWebAppPool" />
    </Component>

    <!--web application definition -->
    <iis:WebApplication Id="IIS.ASCWebApp" Name="AscServicesApp" 
Isolation="high" WebAppPool="IIS.AppPool">
    </iis:WebApplication>


    <!--setup as virtual directory with windows integrated security-->
    <DirectoryRef Id="WEBAPPFOLDER">
      <Component Id="IISCOMP.WinIntegratedSecurityVirtualDirectory" 
Guid="B63E9313-0794-482C-A9D5-576C8D9FDD65">
        <CreateFolder />
        <iis:WebVirtualDir
              Id="IIS.WinIntegratedSecurityVirtualDirectory"
              WebSite="ParentWebSite"
              Directory="WEBAPPFOLDER"
              Alias="[WEBAPPALIAS]"
              DirProperties='IIS.WinIntegratedWebDirProperties'
              WebApplication='IIS.ASCWebApp'>
        </iis:WebVirtualDir>
        <iis:WebDir Id='IIS.UnsecureWebDirOfVirtualDir' 
Path='[WEBAPPALIAS]/Shared/handlers' WebSite='ParentWebSite' 
DirProperties='IIS.DefaultWebDirProperties' />
        <Condition ><![CDATA[IISSETUPTYPE="VirtualDirectory" AND 
IISWITHINTEGRATEDSECURITY="1"]]> </Condition>
      </Component>
    </DirectoryRef>

    <!--setup as virtual directory with default security-->
    <DirectoryRef Id="WEBAPPFOLDER">
      <Component Id="IISCOMP.DefaultSecurityVirtualDirectory" 
Guid="F28DE4CF-9727-4F82-8289-7EC7354C6415">
        <CreateFolder />
        <iis:WebVirtualDir
              Id="IIS.DefaultSecurityVirtualDirectory"
              WebSite="ParentWebSite"
              Directory="WEBAPPFOLDER"
              Alias="[WEBAPPALIAS]"
              DirProperties='IIS.DefaultWebDirProperties'
              WebApplication='IIS.ASCWebApp'
              >
        </iis:WebVirtualDir>
        <Condition ><![CDATA[IISSETUPTYPE="VirtualDirectory" AND 
IISWITHINTEGRATEDSECURITY<>"1"]]> </Condition>
      </Component>
    </DirectoryRef>

    <!--setup as separated web site with windows integrated security-->
    <DirectoryRef Id="WEBAPPFOLDER">
      <Component Id="IISCOMP.WinIntegratedSecurityWebSite" 
Guid="77B6CDB4-ED9B-4264-8893-7A5B6EDD835C">
        <CreateFolder />
        <iis:WebSite
              Id="IIS.WinIntegratedSecurityWebSite"
              SiteId="[WEBSITEID]"
              Description="[WEBAPPALIAS]"
              Directory="WEBAPPFOLDER"
              DirProperties='IIS.WinIntegratedWebDirProperties'
              WebApplication='IIS.ASCWebApp'
              AutoStart='yes'
              >
          <iis:WebAddress Id='IIS.WinIntegratedSecurityWebSiteAddress' 
IP='[WEBSITEIP]' Port='[WEBSITEPORT]'/>
        </iis:WebSite>
        <iis:WebDir
              Id='IIS.UnsecureWebDirOfWebSite'
              Path='Shared/handlers'
              WebSite='IIS.WinIntegratedSecurityWebSite'
              DirProperties='IIS.DefaultWebDirProperties' />
        <Condition ><![CDATA[IISSETUPTYPE="SeparateWebSite" AND 
IISWITHINTEGRATEDSECURITY="1"]]> </Condition>
      </Component>
    </DirectoryRef>

    <!--setup as separated web site with default security-->
    <DirectoryRef Id="WEBAPPFOLDER">
      <Component Id="IISCOMP.DefaultSecurityWebSite" 
Guid="EA285251-E811-46B9-928F-3A894ECDC2C3">
        <CreateFolder />
        <iis:WebSite
              Id="IIS.DefaultSecurityWebSite"
              SiteId="[WEBSITEID]"
              Description="[WEBAPPALIAS]"
              Directory="WEBAPPFOLDER"
              DirProperties='IIS.DefaultWebDirProperties'
              WebApplication='IIS.ASCWebApp'
              AutoStart='yes'
              >
          <iis:WebAddress Id='IIS.DefaultSecurityWebSiteAddress' 
IP='[WEBSITEIP]' Port='[WEBSITEPORT]'/>
        </iis:WebSite>
        <Condition ><![CDATA[IISSETUPTYPE="SeparateWebSite" AND 
IISWITHINTEGRATEDSECURITY<>"1"]]> </Condition>
      </Component>
    </DirectoryRef>

run installer on XP, select install  in virtual directory with windows 
integrated security
installation log:
...
Component: IISCOMP.WinIntegratedSecurityVirtualDirectory; Installed: 
Absent;   Request: Local;   Action: Local
Component: IISCOMP.DefaultSecurityVirtualDirectory; Installed: Absent;   
Request: Local;   Action: Null
Component: IISCOMP.WinIntegratedSecurityWebSite; Installed: Absent;   
Request: Local;   Action: Null
Component: IISCOMP.DefaultSecurityWebSite; Installed: Absent;   Request: 
Local;   Action: Null
...
Action 11:11:56: ConfigureIIsExec.
ConfigureIIsExec:  Skipping ScaWebSvcExtRead() because 
IIsWebServiceExtension data not present
ConfigureIIsExec:  Skipping ScaMimeMapRead() - required table not present
ConfigureIIsExec:  Skipping ScaHttpHeaderRead() - required tables not 
present.
ConfigureIIsExec:  Skipping ScaWebErrorRead() - required tables not present.
ConfigureIIsExec:  A matching web object in memory was found, but the 
web object in memory has no associated base
ConfigureIIsExec:  Error 0x80070002: Failed to find Web base
ConfigureIIsExec:  Error 0x80070002: Failed to get base of web for WebDir
ConfigureIIsExec:  Error 0x80070002: failed to read IIsWebDir table
Error 26003. Failed to read IIsWebDirs table.  (-2147024894         )

Failed because WebDir with Id='IIS.UnsecureWebDirOfWebSite' is 
referenced to WebSite='IIS.WinIntegratedSecurityWebSite' that's not 
installed
but this WebDir and WebSite is in one component that should not be installed
   IISCOMP.WinIntegratedSecurityWebSite; Installed: Absent;   Request: 
Local;   Action: Null

sorry for my english
sorry for long post


------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to