2010-12-21 35 views
2

我目前有一個基於S#arp架構和NHibernate的ASP.NET MVC項目。我目前有一個單獨的nhibernate.config文件,用於我的nhibernate配置。我正在考慮將它移到web.config,因爲我希望能夠更新我的nhibernate配置並使其能夠(有效)立即生效。還有其他一些方法可以實現這一目標,包括簡單地在更改後使用應用程序池回收使用FileSystemWatcher類來檢測對nhibernate.config的更改。我認爲將配置移動到web.config是最簡單的。nhibernate.config vs web.config

我認爲在它自己的文件中使用nhibernate配置的唯一好處是它可以讓您的配置更加模塊化。但我並不認爲這是一個巨大的好處。

是否有任何其他好處讓你的配置分開這樣我失蹤?在我沒有考慮過的web.config中放入nhibernate配置有什麼缺點嗎?

我已搜索任何方式的參數,找不到任何。一些教程/文章使用單獨的配置文件,其他教程使用web.config。

編輯:迴應@Jamie IDE的問題

我要實現的主要是啓動和關閉二級緩存。我爲我的二級緩存使用AppFabric,並且我能找到手動清除或過期緩存的唯一方法是重新啓動緩存羣集。我的代碼處理AppFabric不可用,但應用程序結構客戶端拋出的異常需要很長時間才能拋出,所以我的網站在(大約)兩分鐘左右時間內沒有特別敏感,需要重新啓動集羣。我認爲最好簡單地關閉二級緩存,重新啓動然後重新打開。我知道更新配置需要重新啓動,但是當我編輯web.config時會發生這種情況 - 我只是不想手動執行重新啓動。

+0

重新啓動會殺死所有當前會話 - 這不會給用戶造成比放緩更大的不便嗎?它看起來像AppFabric請求超時可以設置:http://msdn.microsoft.com/en-us/library/ff637721.aspx – 2010-12-21 18:56:29

+0

我不知道我怎麼沒有遇到這種情況。這是對我的問題更好的解決方案。謝謝。 – s1mm0t 2010-12-21 19:06:58

回答

1

我認爲在自己的文件中擁有nhibernate配置的唯一好處是它可以讓您的配置更加模塊化。但我並不認爲這是一個巨大的好處。

我認爲這是一個非常大的好處,也是將它們分開的一個很好的理由,但是Web.config已經大大減少了,所以它不像過去那樣引人注目。 SessionFactory通常是在啓動時使用配置來構建的,因此使NHibernate配置發生變化將需要應用程序重新啓動。你需要做些什麼改變?

1

你對你所想的和權衡的所有方式都是正確的。單獨的nHibernate配置只是爲了保持詳細配置超出正常的web.config。將它合併到web.config中會給你帶來明顯的好處,而且沒有副作用。

+0

感謝您的回覆@Pradeep。我認爲這可能是我提出的一個主觀問題,但是因爲@Jamie Ide讓我更好地解決了我的實際問題,我打算將他的答案標記爲公認的答案。 – s1mm0t 2010-12-21 19:08:58