6

我想为正在安装的网站设置应用程序池,但没有虚拟目录或 Web 应用程序。该网站直接包含website在 IIS 的条目中,我希望 wix 为该网站设置应用程序池。

这可能吗?

4

2 回答 2

9

您看过WebAppPool 元素吗?

这篇文章“创建一个 Web 应用程序安装程序... ”可能会为您提供一些有用的信息,例如

<!-- Define App Pool - identity if not set defaults to: ApplicationPoolIdentity -->
<iis:WebAppPool Id="AppPool" Name="[VD][WEBSITE_ID]" ManagedRuntimeVersion="v4.0" 
                IdleTimeout="0" RecycleMinutes="0" ManagedPipelineMode="integrated">
</iis:WebAppPool>

<iis:WebVirtualDir Id="VDir" Alias="[VD]" 
                   Directory="INSTALLLOCATION"
                   WebSite="SelectedWebSite">
  <iis:MimeMap Id="SilverlightMimeType" Extension=".xap" 
               Type="application/x-silverlight-app" />
  <iis:WebApplication Id="MyWebAppApplication" WebAppPool="AppPool" 
                      Name="[VD][WEBSITE_ID]" />
  <iis:WebDirProperties Id="MyWebSite_Properties" AnonymousAccess="yes" 
                        WindowsAuthentication="no" DefaultDocuments="Default.aspx" />
</iis:WebVirtualDir>

要连接它们,该iis:WebApplication/@WebAppPool条目用于引用 AppPooliis:WebAppPool/@Id

另一个建议是像这样更新网站的 WebApplication,例如

<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>
于 2014-10-22T22:44:22.757 回答
4

@user145400 说:

我实际上已经看到了这个问题,得出的结论是 wix 有一个奇怪的限制:它不能为网站设置应用程序池,但它可以为虚拟目录设置。我再次问,因为我认为它可能已在较新的版本中修复。话虽如此,这就是为什么您的回答实际上并没有回答我的问题

是的,您可以为 WebSite 元素设置池,这样做:

<iis:WebAppPool Id="MyWebSite_AppPool"
                Name="[POOLNAME]"
                Identity="networkService"
                ManagedRuntimeVersion="v4.0"
                ManagedPipelineMode="integrated"/>
            <!--define web site-->
<iis:WebSite Id="MyWebSite_Website"
             Description="[WEBSITENAME]"
             AutoStart="yes"
             StartOnInstall="yes"
             ConfigureIfExists="yes"
             Directory="INSTALLDIR">

     <iis:WebApplication Id="MY_WebApp"
                         Name="MY Web Site"
                         WebAppPool="MyWebSite_AppPool"
                         ScriptTimeout="360" />
</iis:WebSite>

如您所见,iis:WebApplication element在具有属性WebAppPool的iis:WebSite 元素中使用它是可能的:)

于 2014-10-23T08:06:13.320 回答