我有一个WiX安装程序,它设置了几个根IIS网站,每个网站都有许多WebApplications。我们为每个根提供了一个单独的AppPool,并将每个WebApplications放入该AppPool中。
不幸的是,我找不到确保网站进入他们所需的AppPools和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>
答案 0 :(得分: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应用程序的博客文章很好,他将AppPool定义在与WebApplication相同的组件中。
答案 1 :(得分:1)
在WebApplication中引用AppPool时使用Id而不是使用RCMInpAppPool使用INPUTPool时,不确定它是否已在3.6中更改但是3.5中已更改。
答案 2 :(得分:0)
我遇到了同样的问题,但我终于找到了解决方案。而不是在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>