【问题标题】:In wix is it possible to set the application pool for a website?在 wix 中是否可以为网站设置应用程序池?
【发布时间】:2014-10-22 22:35:33
【问题描述】:

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

这可能吗?

【问题讨论】:

    标签: wix wix-iisextension


    【解决方案1】:

    你看过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

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

    【讨论】:

    • 我还发现了一个类似的问题stackoverflow.com/questions/6028848/… 这可能会有所帮助
    • 这个问题我确实看过,得出的结论是wix有一个奇怪的限制:它不能为网站设置应用程序池,但它可以为虚拟目录设置.我再次问,因为我认为它可能已在较新的版本中修复。话虽如此,这就是为什么你的回答实际上并没有回答我的问题:)
    • 也许你还没有描述你迄今为止尝试过的东西,所以我不知道你知道那个 Wix 元素
    • 关于网站内 WebApplication 的更新方法怎么样?
    • 经过进一步测试,我昨天的结论是无效的。它确实适用于您的编辑(这实际上是我正在尝试的,但在我的情况下,我没有卸载网站条目,这意味着第一个安装了错误应用程序池的网站在我所有的安装/卸载过程中一直停留在那里.. .)
    【解决方案2】:

    @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 元素 中使用 iis:WebApplication element 和属性 WebAppPool 是可能的 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-12
      • 2012-12-23
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      相关资源
      最近更新 更多