我目前有一个基于ASP.NET体系结构和NHibernate的S#arp MVC项目。我现在有一个独立的nhibernate.config文件来配置nhibernate。我正在考虑将它移到web.config中,因为我希望能够更新nhibernate配置并(有效地)立即生效。有很多其他方法可以实现这一点,从简单回收应用程序池后进行更改,到使用FileSystemWatcher类来检测nhibernate.config的更改。不过,我认为将配置移动到web.config是最简单的。
我认为nhibernate配置在它自己的文件中的唯一好处是它使您的配置更加模块化。然而,我并不认为这是一个巨大的好处。
您的配置像这样分开还有其他的好处吗?在web.config中放置nhibernate配置有什么坏处,我还没有考虑过呢?
我找过任何一种方法都找不到论据。有些教程/文章使用单独的配置文件,另一些使用web.config。
编辑:对@Jamie问题的回答
我想要实现的主要目标是打开和关闭二级缓存。我在第二级缓存中使用AppFabric,而手动清除或终止缓存的唯一方法是重新启动缓存集群。我的代码处理AppFabric不可用,但应用程序fabric客户端抛出的异常需要很长时间才会抛出,因此我的站点在(大约)两分钟左右的时间内没有特别的响应能力,集群需要重新启动。我认为最好只是关闭二级缓存,重新启动,然后再重新打开它。我理解更新配置将需要重新启动,但这应该发生在我编辑web.config时--我只是不想手动重新启动。
发布于 2010-12-21 18:06:20
--我认为,在它自己的文件中配置nhibernate的唯一好处是,它使您的配置更加模块化。然而,我并不认为这是一个巨大的好处。
我认为这是一个很大的好处,也是一个很好的理由让他们分开,但是Web.config已经被大大地精简了,所以它不再像以前那么有说服力了。SessionFactory通常是在启动时使用配置构建的,因此进行NHibernate配置更改需要重新启动应用程序。你需要在飞行中做什么改变?
发布于 2010-12-21 18:06:04
在你所有的想法和权衡中,你都是正确的。单独的nHibernate配置只是为了避免冗长的配置不符合正常的web.config。将其合并到web.config将给您带来明显的好处和没有副作用。
https://stackoverflow.com/questions/4502365
复制相似问题