私は 1 つの wcf サービス プロジェクト msi を持っています。Wix で MSI を生成し、 appool を割り当てています。しかし、私が msi をアンインストールしているとき。その apppool の参照を持つ他の仮想ディレクトリであっても、アプリプールも削除されています。
誰かが知っているなら、それについて私を助けてください..
私は 1 つの wcf サービス プロジェクト msi を持っています。Wix で MSI を生成し、 appool を割り当てています。しかし、私が msi をアンインストールしているとき。その apppool の参照を持つ他の仮想ディレクトリであっても、アプリプールも削除されています。
誰かが知っているなら、それについて私を助けてください..
他の2つの答えに加えて。私の場合、アンインストール後も 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>
これで契約が成立するはずです。
WiX で AppPool を操作するために使用するコードを貼り付けると、問題を特定しやすくなる場合があります。<iis:WebAppPool>
要素の下に要素をネストすると仮定します<Component>
。この場合、アプリケーション プールはインストール中に作成され、アンインストール中に削除されます。インストール時に存在していたとしても、削除されます。
or要素の<iis:WebAppPool>
下にを配置する必要があります。この場合、それはlocatorとして機能し、他の要素がそれを参照できるようにしますが、インストール/アンインストールはされません。Product
Module
Fragment
詳細については、要素の説明を参照してください。要素のロケーター動作のトリックについては、<WebSite>
要素の記事で説明されています。
そのアプリケーション プールを共有する仮想ディレクトリが異なる MSI にある場合は、コンポーネント ルールと共有コンポーネントの概念を読む必要があります。このようにして、MSI はコンポーネントを参照カウントし、適切な場合はそれとそのリソースを削除します。
それ以外の場合は、通常、競合を避けるためにアプリ プールをさらに作成します。