我有這個管理網站使用(流利)NHibernate的數據訪問。如前所述elsewhere由於創建Configuration對象,SessionFactory的初始化很慢。建議的解決方案是將Configuration對象序列化到磁盤,然後重新使用它直到實體程序集或流體初始化程序集更改。我可以告訴WAS在回收後啓動新的AppPool嗎?
理論上這些聲音非常優雅和吸引人。在實際中,即使使用1實體模型,反序列化配置也需要大約500ms,並且創建SessionFactory 500ms。 (這與沒有序列化的啓動時間相當,但我懷疑一旦我把更多的實體放在那裏,增益就會明顯)。
IIS回收我的應用程序池後,它不會再啓動它,直到新的請求出現了。因此,通過IIS的默認回收管理(每29小時)以及管理員每天一次登錄到我的管理站點的可能情況,幾乎每次管理員登錄時都會發生這種延遲,給人一個緩慢的起始站點。
所以,我想知道是否有任何方法可以告訴IIS/WAS實際啓動替代應用程序池作爲回收的一部分,而不是等待直到下一個請求進入?我意識到這違背了WAS試圖在任何給定時間保持儘可能少的併發應用程序池的想法,但它會解決我的問題(因爲我認爲只要應用程序池啓動,就會創建ServiceHostFactory + ServiceHost) 。
嗯..在一整天的9個意見。我想我缺乏聲譽並不能很好地服務於我。任何替代解決方案也會受到歡迎。你會考慮緩存配置在內存中的某個地方,例如在Windows服務或com對象? – Mithon