【问题标题】:wix installer / Create web-site and assign the new or exisiting web app poolwix 安装程序/创建网站并分配新的或现有的网络应用程序池
【发布时间】:2013-08-25 16:49:29
【问题描述】:

我尝试使用 wix 安装创建一个新网站。没关系,没有问题,但我无法将新的或现有的网络应用程序池分配给新网站。 iis:website 标记不包含 WebAppPool 属性。如何将 Web 应用程序池分配给网站。你可以在下面看到我的代码。

感谢您的帮助。

        <Component Id="WEB_SITE_CONFIGURE_COMPONENT" Guid="{35087032-D049-48C8-BCAD-1FEFD0C06A25}" NeverOverwrite="yes" Shared="yes" Permanent="yes" Transitive="yes">
          <Condition><![CDATA[WEBSITE_INSTALLTYPE<>2]]></Condition>
          <CreateFolder Directory="WEBSITE_FOLDER"/>
          <iis:WebSite Id="WEB_SITE" Description="[WEBSITE_NAME]" SiteId="*" Directory="WEBSITE_FOLDER" ConfigureIfExists="yes" AutoStart="yes" StartOnInstall="yes">
            <iis:WebAddress Id="AllUnassigned" Port="[WEBSITE_PORT]" />            
          </iis:WebSite>
          <RegistryValue Root="HKLM" Key="$(var.DefaultRegistryKey)" Name="ConfigSite" Value="1" Type="string"></RegistryValue>
        </Component>        

        <Component Id="WEBAPP_POOL_CONFIGURE_COMPONENT" Guid="{316738A6-26A2-4C14-9AB9-B2066E3FA288}" KeyPath="yes" Permanent="yes" Transitive="yes">
          <Condition><![CDATA[(WEBSITE_INSTALLTYPE=0) OR (USE_CUSTOM_WEBSITE_FOLDER=1)]]></Condition>          
          <iis:WebAppPool Id="APP_POOL" Name="[WEBAPP_POOL_NAME]" ManagedPipelineMode="Classic" ManagedRuntimeVersion="v4.0"/>
          <RegistryValue Root="HKLM" Key="$(var.DefaultRegistryKey)" Name="ConfigPool" Value="1" Type="string"></RegistryValue>
        </Component>

        <Component Id="WEPAPP_CONFIGURE_COMPONENT" Guid="{F95B024E-B6B6-4E6C-AC35-9B1086FC3521}" Transitive="yes">
          <Condition><![CDATA[(WEBSITE_INSTALLTYPE<>2) AND ((WEBSITE_INSTALLTYPE=0) OR (USE_CUSTOM_WEBSITE_FOLDER=1))]]></Condition>
          <iis:WebVirtualDir Id="VIRTUAL_DIR" Alias="[WEB_APP_NAME]" Directory="WWW_FOLDER" WebSite="WEB_SITE">
            <iis:WebApplication Id="WEB_APP" Name="[WEB_APP_NAME]" WebAppPool="APP_POOL"/>            
          </iis:WebVirtualDir>
          <RegistryValue Root="HKLM" Key="$(var.DefaultRegistryKey)" Name="ConfigVirtualDir" Value="1" Type="string"></RegistryValue>
        </Component>

【问题讨论】:

    标签: web wix application-pool


    【解决方案1】:

    在以下文章的帮助下,我提出了一个工作安装程序,可以在其中创建新的 AppPool 或选择现有的 AppPool。

    1. Creating a Web Application Installer with WIX 3.5 and Visual Studio 2010–Part 1
    2. Web Application Installer in WiX
    3. WiX and DTF: Using a Custom Action to list available web sites on IIS
    4. Installing a Web Application to an Existing IIS Website using Wix3

    简而言之: 在您的 Product 元素中创建一个网站元素:

    <Product>
        <iis:WebSite Id="SelectedWebSite" Description="[WEBSITE_DESCRIPTION]" Directory="INSTALLFOLDER" SiteId="[WEBSITE_ID]">
          <iis:WebAddress Id="AllUnassigned" Port="80" />
        </iis:WebSite>
    </Product>
    

    创建一个包含以下内容的 Include WebSites.wxi:

    <?xml version="1.0" encoding="utf-8"?>
    <Include>
      <Property Id="WEBSITE_DESCRIPTION">
        <RegistrySearch Id="WebSiteDescription" Name="WebSiteDescription" Root="HKLM" Key="SOFTWARE\!(loc.CompanyName)\[ProductName]\Install" Type="raw" />
      </Property>
      <Property Id="WEBSITE_ID">
        <RegistrySearch Id="WebSiteID" Name="WebSiteID" Root="HKLM" Key="SOFTWARE\!(loc.CompanyName)\[ProductName]\Install" Type="raw" />
      </Property>
      <Property Id="WEBSITE_PATH">
        <RegistrySearch Id="WebSitePath" Name="WebSitePath" Root="HKLM" Key="SOFTWARE\!(loc.CompanyName)\[ProductName]\Install" Type="raw" />
      </Property>
      <Property Id="WEBSITE_VD">
        <RegistrySearch Id="WebSiteVD" Name="WebSiteVD" Root="HKLM" Key="SOFTWARE\!(loc.CompanyName)\[ProductName]\Install" Type="raw" />
      </Property>
      <CustomTable Id="AvailableWebSites">
        <Column Id="WebSiteID" Category="Identifier" PrimaryKey="yes" Type="int" Width="4"/>
        <Column Id="WebSiteDescription" Category="Text" Type="string" PrimaryKey="no"/>
        <Column Id="WebSitePath" Category="Text" Type="string" PrimaryKey="no" Nullable="yes"/>
        <Row>
          <Data Column="WebSiteID">0</Data>
          <Data Column="WebSiteDescription">Dummy</Data>
          <Data Column="WebSitePath"></Data>
        </Row>
      </CustomTable>
    </Include>
    

    创建 here 描述的 CustomAction。

    使用您的 AppPool 创建一个 wxs 文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <Wix 
      xmlns="http://schemas.microsoft.com/wix/2006/wi" 
      xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" 
      xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension">
        <Fragment>
        <Component Id="WebVirtualDirComponent" Guid="PUT-GUID-HERE" Directory="INSTALLFOLDER" KeyPath="yes">
          <iis:WebAppPool 
            Id="YourAppPoolName" 
            Name="[VD][WEBSITE_ID]" 
            ManagedRuntimeVersion="v4.0" 
            IdleTimeout="0" 
            RecycleMinutes="0" 
            ManagedPipelineMode="integrated"/>
          <iis:WebVirtualDir Id="VDir" Alias="[VD]" Directory="INSTALLFOLDER" WebSite="SelectedWebSite">
            <iis:WebApplication Id="NotizBrowserWebApp" WebAppPool="YourAppPoolName" Name="[VD][WEBSITE_ID]" />
            <iis:WebDirProperties Id="NotizBrowserProps" AnonymousAccess="no" WindowsAuthentication="yes" DefaultDocuments="-" Execute="yes" Script="yes" Read="yes"/>
          </iis:WebVirtualDir>
        </Component>
        </Fragment>
    </Wix>
    

    【讨论】:

    【解决方案2】:

    迟到的答案,但希望有人能从中受益。

    您不需要 CustomAction 来完成这项工作。

    就这么简单:

    <Component Id="WebSite" Guid="PUT-YOUR-GUID-HERE">
        <CreateFolder/>
        <iis:WebSite Id="WebSite" Directory="WebSiteRoot" Description="[WEBSITEDESCRIPTION]" >
            <iis:WebApplication Id="WebSiteApplication" Name="[WEBSITEDESCRIPTION]" WebAppPool="MyAppPool" />
        </iis:WebSite>
        <iis:WebAppPool Id="MyAppPool" Name="[APPPOOLNAME]" ManagedRuntimeVersion="v4.0"/>
    </Component>
    

    您需要更新网站的“内部”WebApplication。

    您不需要使“网站描述”和“Web 应用程序名称”相等,但这将有助于您了解发生了什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      相关资源
      最近更新 更多