在wix中是否可以为网站设置应用程序池?

时间:2014-10-22 22:35:34

标签: wix wix-iisextension

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

这可能吗?

2 个答案:

答案 0 :(得分:8)

你看过WebAppPool Element吗?

这篇文章' creating a web application installer ...'可能会为您提供一些有用的信息,例如

<!-- 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条目用于引用AppPool iis:WebAppPool/@Id

另一个建议是像这样更新WebSite的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>

答案 1 :(得分: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:WebSite元素中使用属性 WebAppPool 所使用的iis:WebApplication element可以看到的那样:)