0

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

如果有人知道请帮助我..

4

3 回答 3

0

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

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

于 2012-08-14T11:25:56.877 回答
0

除了其他两个答案。我的情况是,我希望 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>

这应该达成协议。

于 2014-07-15T09:08:26.870 回答
0

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

您应该在or or元素<iis:WebAppPool>下找到。在这种情况下,它将用作定位器,允许其他元素引用它,但不会被安装/卸载。ProductModuleFragment

查看元素描述以获取更多详细信息。element article中描述了元素定位器行为的技巧。<WebSite>

于 2012-08-14T09:15:35.973 回答