7

デフォルトの IIS サイトではない既存の IIS サイトにアプリケーションを追加したいと考えています。これは通常の要求ではありませんが、Win 2008 SBS に展開するときに必要です。MVC Web API アプリケーションを正しく動作させるには、「SBS Web アプリケーション」の下に移動する必要があります。

IIS では、[SBS Web アプリケーション] > [アプリケーションの追加] を右クリックし、エイリアス、アプリケーション プール、および物理パスを設定します。

Wix では、IIS:WebApplication でこれらのプロパティを設定することはできません。さらに、IIS:WebVirtualDir を使用する必要があるように見えますが、これを行う必要はありません。これを機能させるには、API がインストールされている場所を Physical Path 属性でポイントする必要があります。

IIS UI に従って必要なエイリアスとパスを WiX IIS:WebApplication に伝えることができないのはなぜですか?

私が行ったすべての WiX 作業の中で、これは最も簡単なことの 1 つだと思っていたでしょう。

注: アプリケーションを作成したいのですが、サイトを作成したくない、または作成する必要はありません。サイトは既に存在します。

4

1 に答える 1

6

指定された目標を WIX で達成できます。IIS 6、IIS 7、および IIS 7.5 用に、新しい Web サイトまたは既存の Web サイトにインストールする、さらに複雑なバリエーションがあります。

既存の Web サイトへのインストールに関しては、WIX は SiteId に基づいてサイトを識別します。サイトに自動生成されない ID がある場合は、対応するフィールドに * を設定する代わりに、明示的に指定する必要があります。それ以外の場合、siteId はその Description 属性に基づいて生成されるため、既存のサイトを参照するには description を正しく指定する必要があります。

これが私の実装です(そこから必要なものを抽出できることを願っています):

<PropertyRef Id="FRAMEWORKROOT"/>

<PropertyRef Id="SITE_INSTALL_MODE"/>
<PropertyRef Id="SITE_NAME"/>
<PropertyRef Id="SITE_PORT"/>
<PropertyRef Id="SITE_VIRT_DIR"/>
<PropertyRef Id="SITE_APP_NAME"/>
<PropertyRef Id="SITE_HEADER"/>
<PropertyRef Id="SITE_APP_POOL"/>
<PropertyRef Id="SITE_ID"/>

<Property Id="SITE_APP_NAME" Value="{ProductId}"/>

<iis:WebApplication Id="IIS6WebApp" Name="[SITE_APP_NAME]" WebAppPool="AppPool" >
  <iis:WebApplicationExtension Verbs="GET,HEAD,POST" CheckPath="no" Script="yes" Executable="[FRAMEWORKROOT]v4.0.30319\aspnet_isapi.dll" />
</iis:WebApplication>

<iis:WebApplication Id="Iis7WebApp" Name="[SITE_APP_NAME]" WebAppPool="AppPool"></iis:WebApplication>

<iis:WebSite Id="ExistingWebSite" Description="[EXISTING_SITE_NAME]" SiteId="*">
  <iis:WebAddress Id="ExistingSite_IIS7_Header_Binding" Port="[SITE_PORT]" Header="[SITE_HEADER]" />
</iis:WebSite>

<util:Group Id="IisUsersGroup" Name="[IisGroup]" Domain="[ComputerName]"/> 

<DirectoryRef Id="SITE_INSTALLDIR">
  <Component Id="AppPoolConfigure" Guid="YOURGUID-5549-48E8-B989-AFC61D279527" KeyPath="yes" Permanent="no">
    <util:User Id="SiteUser" Domain="[APP_USER_DOMAIN]" Name="[APP_USER_NAME]" Password="[APP_USER_PASSWORD]" CreateUser="no" UpdateIfExists="no" RemoveOnUninstall="no">
      <util:GroupRef Id="IisUsersGroup"/>
    </util:User>

    <iis:WebAppPool Id="AppPool" Name="[SITE_APP_POOL]" ManagedRuntimeVersion="v4.0" ManagedPipelineMode="integrated" Identity="other" User="SiteUser" />
  </Component>

  <Component Id="Iis6NewSiteConfigure" Guid="YOURGUID-8592-4E69-8D80-E42745307D7A" KeyPath="yes" Permanent="no">
    <Condition><![CDATA[Installed OR (SITE_INSTALL_MODE = "NewSite" AND IISMAJORVERSION AND (IISMAJORVERSION = "#6"))]]></Condition>
    <iis:WebSite Id="NewWebSite_IIS6" Description="[SITE_NAME]"
                 AutoStart="yes" StartOnInstall="yes" ConfigureIfExists="no"
                 Directory="SITE_INSTALLDIR" ConnectionTimeout="360" SiteId="[SITE_ID]" 
                 DirProperties="WebDirProperties" WebApplication="IIS6WebApp">
      <iis:WebAddress Id="Site_IIS6_Header_Bindings" Port="[SITE_PORT]" Header="[SITE_HEADER]" />
    </iis:WebSite>
  </Component>

  <Component Id="Iis6ExistingSiteConfigure" Guid="YOURGUID-8ECB-4AC3-95B1-B7287D0AC903" KeyPath="yes" Permanent="no">
    <Condition><![CDATA[Installed OR (SITE_INSTALL_MODE = "ExistingSiteNewVDir" AND IISMAJORVERSION AND (IISMAJORVERSION = "#6"))]]></Condition>
      <iis:WebVirtualDir Id="Site_IIS6_VDir" Directory="SITE_INSTALLDIR" Alias="[SITE_VIRT_DIR]" WebSite="ExistingWebSite" 
                         DirProperties="WebDirProperties" WebApplication="IIS6WebApp"/>
  </Component>

  <Component Id="Iis6ConfigExtentions" Guid="YOURGUID-55F2-48E3-8B08-E37BA5137D8D" KeyPath="yes" Permanent="yes">
    <Condition><![CDATA[Installed OR (IISMAJORVERSION AND (IISMAJORVERSION = "#6"))]]></Condition>
    <iis:WebServiceExtension Id="ExtensionASP4" Group="ASP.NET v4.0.30319" Allow="yes" File="[FRAMEWORKROOT]v4.0.30319\aspnet_isapi.dll" Description="ASP.NET v4.0.30319"/>
  </Component>

  <Component Id="Iis7NewSiteConfigure" Guid="YOURGUID-5DF6-4071-94F4-89D1EDAE8D90" KeyPath="yes" Permanent="no">
    <Condition><![CDATA[Installed OR (SITE_INSTALL_MODE = "NewSite" AND IISMAJORVERSION AND (IISMAJORVERSION > "#6"))]]></Condition>
    <iis:WebSite Id="WebSite_IIS7" Description="[SITE_NAME]"
                 AutoStart="yes" StartOnInstall="yes" ConfigureIfExists="yes"
                 Directory="SITE_INSTALLDIR" ConnectionTimeout="360" SiteId="[SITE_ID]"
                 DirProperties="WebDirProperties" WebApplication="Iis7WebApp">
      <iis:WebAddress Id="NewSite_IIS7_Header_Binding" Port="[SITE_PORT]" Header="[SITE_HEADER]" />
    </iis:WebSite>
  </Component>

  <Component Id="Iis7ExistingSiteConfigure" Guid="YOURGUID-FBBE-4379-8C7B-CDBD08EDCBA2" KeyPath="yes" Permanent="no">
    <Condition><![CDATA[Installed OR (SITE_INSTALL_MODE = "ExistingSiteNewVDir" AND IISMAJORVERSION AND (IISMAJORVERSION > "#6"))]]></Condition>
      <iis:WebVirtualDir Id="Site_IIS7_VDir" Directory="SITE_INSTALLDIR" Alias="[SITE_VIRT_DIR]" WebSite="ExistingWebSite"
                         DirProperties="WebDirProperties" WebApplication="Iis7WebApp"/>
  </Component>
</DirectoryRef>

<ComponentGroup Id="IisSiteOrVDirCreate">
  <ComponentRef Id="AppPoolConfigure"/>
  <ComponentRef Id="Iis6NewSiteConfigure"/>
  <ComponentRef Id="Iis6ExistingSiteConfigure"/>
  <ComponentRef Id="Iis6ConfigExtentions"/>
  <ComponentRef Id="Iis7NewSiteConfigure"/>
  <ComponentRef Id="Iis7ExistingSiteConfigure"/>
</ComponentGroup>

<CustomAction Id="SetIisGroupToIUSRS" Property="IisGroup" Value="IIS_IUSRS" />
<CustomAction Id="SetIisGroupToWPG" Property="IisGroup" Value="IIS_WPG" />

<CustomAction Id="SetIisSiteUser" Property="IisSiteUser" Value="[APP_USER_DOMAIN]\[APP_USER_NAME]"/>

<InstallExecuteSequence>
  <Custom Action="SetIisGroupToIUSRS" After="AppSearch">IISMAJORVERSION>="#7"</Custom>
  <Custom Action="SetIisGroupToWPG" After="AppSearch">IISMAJORVERSION="#6"</Custom>
  <Custom Action="SetIisSiteUser" Before="InstallInitialize">1</Custom>
</InstallExecuteSequence> 
于 2013-02-07T12:23:30.717 に答える