2012-11-25 71 views
4

我目前有一個用於將Web應用程序部署到IIS中的WiX安裝程序。在WiX安裝程序的應用程序池中設置禁用的重疊回收

該應用程序使用Lucene.Net和它的近實時搜索功能。

不幸的是,這樣做的副作用是Lucene索引在應用程序運行期間保持打開/鎖定狀態。這意味着如果「Disable Overlapped Recycle」設置爲false,那麼當應用程序池回收時(例如在升級過程中),我們遇到了lucene索引仍然被前一個實例鎖定的問題。

解決方法是在應用程序池的高級設置中將「Disable Overlapped Recycle」(禁用重疊回收)更改爲True,但我無法弄清楚如何使用wix執行此操作。

無論如何,我可以通過WiX自動設置此值嗎?

僅供參考 - 這裏的WebAppPool部分看起來像目前在我安裝項目:

<iis:WebAppPool Id="AppPool" Name="Some App" ManagedRuntimeVersion="v4.0" 
    IdleTimeout="0" RecycleMinutes="0" ManagedPipelineMode="integrated" 
    Identity="networkService" /> 

回答

3

有時候你會遇到未通過任何維克斯或InstallShield提供的自定義操作暴露IIS元數據庫屬性。在這些情況下,使用Quiet Execute Custom Action來調用AppCmd.exe通常是最容易的。

基本上充分利用IIS擴展來充分利用,然後在安裝結束時調整應用程序池。