2013-08-22 1 views
3

Я попытаюсь создать новый веб-сайт, используя установку wix. это нормально, нет проблем, но я не могу назначить новый или существующий пул веб-приложений на новый веб-сайт. iis: тег веб-сайта не содержит атрибут WebAppPool. Как я могу назначить пул веб-приложений на веб-сайт. Вы можете увидеть мой код ниже.wix installer/Создать веб-сайт и назначить новый или существующий пул веб-приложений

благодарит за помощь.

 <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> 

ответ

4

С помощью следующих статей я пришел с рабочей программой установки, в которой новый 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> 
    <iis:WebSite Id="SelectedWebSite" Description="[WEBSITE_DESCRIPTION]" Directory="INSTALLFOLDER" SiteId="[WEBSITE_ID]"> 
     <iis:WebAddress Id="AllUnassigned" Port="80" /> 
    </iis:WebSite> 
</Product> 

Создать Включить 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> 

Создайте CustomAction описано here.

Создать WXS файл с вашим AppPool:

<?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> 
+0

спасибо за помощь, я решил его с помощью специального действия до – user1928388

+0

«Создайте CustomAction, описанный здесь», ссылка мертва. Вот архивный снимок этой ссылки https://web.archive.org/web/20160315164757/http://blogs.planetsoftware.com.au/paul/archive/2011/02/26/creating-a-web- application-installer-with-wix-3.5-and-visual-once-more.aspx –

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> 

Вам необходимо обновить "Internal" WebApplication сайта.

Вам не нужно указывать «Описание WebSite» и «Имя WebApplication», но это поможет вам понять, что происходит.

+0

это сработало для меня –

Смежные вопросы