2013-02-05 27 views
5

既定のIISサイトではない既存のIISサイトにアプリケーションを追加したいと考えています。これは通常のリクエストではありませんが、Win 2008 SBSにデプロイする際には必要です。MVC Web APIアプリケーションは正しく動作するためには 'SBS Web Applications'の下に移動する必要があります。WiXを使用して既存のIISサイトにアプリケーションを追加する方法

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

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

なぜWiX IISに伝えられないのですか?WebApplicationエイリアス& IIS UIごとに必要なパス?

私が行ったすべてのWiXの作業のうち、これはやりやすいことでした。

注:私はアプリケーションを作成したい、私はサイトを作成したくない、または作成する必要はない - 既にそこにある。

答えて

4

あなたはWIXで指定された目標を達成することができます。私は、IIS 6、IIS 7、およびIIS 7.5用に、新しいWebサイトまたは既存のWebサイトのいずれかにインストールするという、さらに複雑な方法があります。

既存のWebサイトにインストールする場合、WIXはSiteIdに基づいてサイトを識別します。サイトのIDが自動生成されていない場合は、対応するフィールドに*を設定する代わりに明示的に指定する必要があります。それ以外の場合、siteIdは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> 
関連する問題