Iis 7 卸载msi删除应用程序池

Iis 7 卸载msi删除应用程序池,iis-7,wix,windows-installer,Iis 7,Wix,Windows Installer,我有一个wcf服务项目msi。我通过Wix生成MSI并分配appool。但是当我卸载msi时。应用程序池也会被删除,甚至其他具有该应用程序池引用的虚拟目录也会被删除 如果有人知道,请在这方面帮助我 如果在WiX中粘贴用于处理AppPool的代码,则可能更容易找到问题。我假设您将元素嵌套在元素下。在这种情况下,应用程序池将在安装期间创建,并在卸载期间删除。即使在安装时它已经存在,它仍然会被移除 您应该在产品或模块或片段元素下找到。在这种情况下,它将用作定位器,允许其他元素引用它,但不会被安装/卸载

我有一个wcf服务项目msi。我通过Wix生成MSI并分配appool。但是当我卸载msi时。应用程序池也会被删除,甚至其他具有该应用程序池引用的虚拟目录也会被删除


如果有人知道,请在这方面帮助我

如果在WiX中粘贴用于处理AppPool的代码,则可能更容易找到问题。我假设您将
元素嵌套在
元素下。在这种情况下,应用程序池将在安装期间创建,并在卸载期间删除。即使在安装时它已经存在,它仍然会被移除

您应该在
产品
模块
片段
元素下找到
。在这种情况下,它将用作定位器,允许其他元素引用它,但不会被安装/卸载


有关更多详细信息,请查看。元素的定位器行为技巧如中所述。

如果共享该应用程序池的虚拟目录位于不同的MSI中,则需要阅读组件规则和共享组件的概念。通过这种方式,MSI将引用计数组件,并在适当时删除它及其资源


否则,我通常只创建更多的应用程序池来避免冲突。

除了其他两个答案之外。我的情况是,我希望WebAppPool在卸载后保持不变。因此,如果您想在msi中安装WebAppPool并在卸载后继续安装,您可以向“组件”标记添加“永久”属性,并将其值设置为“是”,如下所示:

<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>

这应该会达成协议