2012-08-14 169 views
0

我有一個wcf服務項目msi。我由Wix生成MSI並分配appool。但是當我卸載msi。即使其他具有該apppool引用的虛擬目錄,應用程序池也會被刪除。卸載msi刪除應用程序

如果某些人知道的請幫我這句話..

回答

0

這可能是更容易,如果您貼上您使用維克斯與程序池的工作代碼來查找問題。我假設你將<iis:WebAppPool>元素嵌套在<Component>元素下。在這種情況下,應用程序池將在安裝過程中創建,並在卸載過程中被刪除。即使在安裝的時候,它仍然會被刪除。

您應該在ProductModuleFragment元素下找到<iis:WebAppPool>。在這種情況下,它將作爲定位器,允許其他元素引用它,但未被安裝/卸載。

查看element description瞭解更多詳情。 定位器的技巧在<WebSite> element article中描述。

0

如果共享該應用程序池的虛擬目錄位於不同的MSI中,則需要閱讀組件規則和共享組件的概念。通過這種方式,MSI將引用對該組件進行計數並將其刪除,並在適用時進行資源刪除。

否則,我通常只是創建更多的應用程序池以避免衝突。

0

除了其他兩個答案。即時通訊我的情況我希望WebAppPool留在它卸載後。所以,如果你想安裝WebAppPool在MSI和留卸載後,您可以添加一個「永久」屬性的「分量」的標籤並將其值設置爲「yes」是這樣的:

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

這應該使交易。