nhibernate.config vs web.config

时间:2010-12-21 17:57:18

标签: nhibernate asp.net-mvc-2 s#arp-architecture appfabric

我目前有一个基于S#arp架构和NHibernate构建的ASP.NET MVC项目。我目前为我的nhibernate配置有一个单独的nhibernate.config文件。我正在考虑将其移至web.config,因为我希望能够更新我的nhibernate配置并使其(有效地)立即生效。我可以通过许多其他方式实现此目的,从简单地在进行更改后回收应用程序池到使用FileSystemWatcher类来检测对nhibernate.config的更改。我认为将配置移动到web.config是最简单的。

我认为在其自己的文件中使用nhibernate配置的唯一好处是它可以使您的配置更加模块化。但我并不认为这是一个巨大的好处。

将您的配置分开是否有任何其他好处,我错过了?在web.config中放置nhibernate配置是否有任何缺点我还没有考虑过?

我在任何一种方式都搜索了参数,但找不到任何参数。一些教程/文章使用单独的配置文件,其他使用web.config。

编辑:对@Jamie Ide问题的回应

我想要实现的主要功能是打开和关闭二级缓存。我正在使用AppFabric作为我的二级缓存,我可以找到清除或手动使缓存过期的唯一方法是重启缓存集群。我的代码处理AppFabric不可用,但app fabric客户端抛出的异常需要花费很长时间才能抛出,所以我的网站在(大约)两分钟左右的时间内没有特别响应,需要群集重新启动。我认为最好只关闭二级缓存,重启然后再重新打开。我知道更新配置需要重新启动,但这应该在我编辑web.config时发生 - 我只是不想手动重启。

2 个答案:

答案 0 :(得分:1)

你在思考和权衡的所有方面都是正确的。单独的nHibernate配置只是为了将详细配置保持在正常的web.config之外。将它合并到web.config中会给你带来明显的好处,也没有任何副作用。

答案 1 :(得分:1)

  

我认为在其自己的文件中使用nhibernate配置的唯一好处是它可以使您的配置更加模块化。但我并不认为这是一个巨大的好处。

我认为这是一个非常大的好处,也是保持它们分离的一个很好的理由,但是Web.config已经大大减少了,所以它不像过去那样引人注目。 SessionFactory通常在启动时使用配置构建,因此无论如何,进行NHibernate配置更改都需要重新启动应用程序。你需要在飞行中做出哪些改变?