【问题标题】:Setting the AppPool of a WebSite element in WiX 3.6在 WiX 3.6 中设置 WebSite 元素的 AppPool
【发布时间】:2011-05-17 09:28:24
【问题描述】:

我有一个 WiX 安装程序,它设置了几个根 IIS 网站,每个网站都有许多 Web 应用程序。我们为每个根创建一个单独的 AppPool,并将每个 WebApplications 放入该 AppPool。

不幸的是,我找不到确保网站进入其所需 AppPool 的方法,而 WiX 坚持将它们放入 DefaultAppPool。

我这里有什么遗漏吗?

  <Component Id="INPUT" Guid="{43302D85-55B5-4C99-8C07-8AF5ED419E0A}" Directory="dirBBD4B479DF2AD0441616B5EB11867FA6" KeyPath="yes">
    <iis:WebAppPool Id="INPUTPool" Name="RCMInput" ManagedPipelineMode="integrated" ManagedRuntimeVersion="v4.0"/>
  </Component>
  <Component Id="INPUTSITE" Directory="dirBBD4B479DF2AD0441616B5EB11867FA6" Guid="{E508497A-C485-4EB8-8A91-4299BD46291B}" KeyPath="yes">
    <iis:WebSite Id="INPUTROOT" Description="RCMInput" Directory="dirBBD4B479DF2AD0441616B5EB11867FA6" AutoStart="yes" >
      <iis:WebAddress Id="INPUTROOTADDRESS" IP="[RCMINPIP]" Port="443" Secure="yes" Header="[RCMINPHOST]" />
      <iis:WebVirtualDir Id="INPUTVD" Alias="InputApp" Directory="dir0AC030D54BBE340DFFCC71C2724F6BF1">
        <iis:WebApplication Id="INPUTWEBAPP" Name="InputApp" WebAppPool="RCMInpAppPool">
          <iis:WebApplicationExtension CheckPath="no" Extension="svc" Executable="[NETFRAMEWORKROOT]v2.0.50727\aspnet_isapi.dll" Verbs="GET,HEAD,POST,PUT,DELETE"/>
        </iis:WebApplication>
      </iis:WebVirtualDir>
      <iis:WebVirtualDir Id="INPUTVD2" Alias="Administration" Directory="dir78ADFB9F5CBB65D9A3E21EAB7F4C5911">
        <iis:WebApplication Id="INPUTWEBAPP2" Name="Administration" WebAppPool="RCMInpAppPool">
          <iis:WebApplicationExtension CheckPath="no" Extension="svc" Executable="[NETFRAMEWORKROOT]v2.0.50727\aspnet_isapi.dll" Verbs="GET,HEAD,POST,PUT,DELETE"/>
        </iis:WebApplication>
      </iis:WebVirtualDir>
    </iis:WebSite>
  </Component>

【问题讨论】:

    标签: iis installation wix


    【解决方案1】:

    我猜当您在 WebApplication 中引用 AppPool 名称“RCMInput”时,它无法解析它并默认使用默认应用程序池。您是否尝试过在打开日志记录的情况下运行 MSI 并查看是否提供了任何额外的详细信息?

    从命令行

    msiexec /i install.msi -L*v install.log
    

    http://ranjithk.com/2009/12/17/automating-web-deployment-using-windows-installer-xml-wix/ 有一篇关于在 WiX 中部署 Web 应用程序的好博文,他在与 WebApplication 相同的组件中定义了 AppPool。

    【讨论】:

    • 我认为这只是 WiX 的一个限制。虽然可以将应用程序池分配给 webapps,但无法将它们分配给网站。尽管使用自定义操作在安装后调用 appcmd,但该链接向我发送了正确的方向。
    • @PeterKelly 该链接现已损坏。
    【解决方案2】:

    不确定它是否在 3.6 中发生了变化,但对于 3.5,当在 WebApplication 中引用 AppPool 时使用 Id,而不是使用 RCMInpAppPool 使用 INPUTPool。

    这是excellent example

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,但我终于找到了解决方案。与其在 WebVirtualDir 中嵌套 WebApplication(引用您的应用程序池),不如将其直接放在您的网站中。所以,如果你有这个:

      <iis:WebSite Id='WebSite' Description='My Website' Directory="WebsiteDir">
         <iis:WebAddress Id='WebAddress' Port='80' />
         <iis:WebVirtualDir Id="VirtualDir" Alias="mywebsite" Directory="WebsiteDir">
             <iis:WebApplication Id="WebApplication" Name="MyWebApplication" WebAppPool="MyWebAppPool" />
         </iis:WebVirtualDir>
      </iis:WebSite>
      

      替换为:

      <iis:WebSite Id='WebSite' Description='My Website' Directory="WebsiteDir">
         <iis:WebAddress Id='WebAddress' Port='80' />
         <iis:WebVirtualDir Id="VirtualDir" Alias="mywebsite" Directory="WebsiteDir" />
         <iis:WebApplication Id="WebApplication" Name="MyWebApplication" WebAppPool="MyWebAppPool" />
      </iis:WebSite>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-07
        • 2021-01-18
        • 1970-01-01
        相关资源
        最近更新 更多