我有一个wcf服务项目msi。我正在通过Wix生成MSI并分配appool。但是当我卸载msi时。即使是具有该apppool引用的其他虚拟目录,应用程序池也会被删除。
如果有人知道请帮助我...
答案 0 :(得分:0)
如果您粘贴用于在WiX中使用AppPool的代码,则可能更容易找到问题。我假设您将<iis:WebAppPool>
元素嵌套在<Component>
元素下。在这种情况下,应用程序池将在安装期间创建,并在卸载期间删除。即使它在安装时就在那里,它仍然会被删除。
您应该在<iis:WebAppPool>
或Product
或Module
元素下找到Fragment
。在这种情况下,它将作为定位器,允许其他元素引用它,但不安装/卸载。
查看element description了解更多详情。 <WebSite>
element article中描述了元素 locator 行为的技巧。
答案 1 :(得分:0)
如果共享该应用程序池的虚拟目录位于不同的MSI中,则需要了解组件规则和共享组件的概念。这样,MSI将引用计算组件并将其删除,并在适当时删除它。
否则我通常会创建更多应用池以避免冲突。
答案 2 :(得分:0)
除了另外两个答案。在我的情况下,我希望WebAppPool在卸载后保持不变。因此,如果您想在msi中安装WebAppPool并在卸载后保留,则可以添加&#34; Permanent&#34;归因于你的&#34;组件&#34;标记并将其值设置为&#34;是&#34;像这样:
<Component Id="RepoAppPoolCmp" Guid="{B676B577-FEDB-44BF-9096-1510D2A29E38}" KeyPath="yes" Permanent="yes">
<iis:WebAppPool Id="RepoAppPool" ManagedRuntimeVersion="v4.0" IdleTimeout="0" RecycleMinutes="0" Name="[WEB_APP_POOL_IDENTITY]" Identity="networkService" />
</Component>
这应该成交。