我需要存储有关我的网站不时更新的设置,并且想知道最有效的方法是什么。请注意,一旦更改了这些设置,我甚至需要在IIS重新启动后才能访问它们,因此简单的应用程序变量不是答案。我也知道我可以在我的配置文件中存储应用程序设置,但是当你更改它们时,实际的XML似乎没有更新,因此每次更改时我都必须在幕后重写XML。
至于写入一个文件,例如INI,我的担心是在我写作时,另一个人试图阅读。在做这样的事情之前我有IO锁定错误。此外,我可以进行数据库存储,但尝试保持较低的数据库调用。
现在我可能已经设置了一个INI,我在更改时写入,在应用程序加载时我从中拉出来以便我总是可以访问本地变量。这会使IO问题变得不太可能,因为我只读了一次。只是基本上寻找一些可能是最有效的方法的输入。
提前致谢,
Anthony F Greco
答案 0 :(得分:3)
如果要最小化数据库调用,我会说将值放在数据库中,然后将它们缓存在应用程序中。根据您的需要,可能每30分钟使缓存过期,因此当您更改DB值时,它将在不超过30分钟的时间内应用,并且您每30分钟只会进行一次数据库调用(或者在需要时,如同你的应用重启)。或者你可以使用SQL Cache Dependency,但我从来没有这样做过,所以我不知道这种技术的缺陷。
答案 1 :(得分:2)
我们将所有应用程序设置从web.config移动到数据库,如HERE.
我们已经完成了解决从Dev to Test到QA to Prod的代码问题,但它可以用于其他原因。
我们在应用程序启动时缓存,然后每隔5分钟检查一次,以查看表中的单个计数器是否已更新。如果是这样,它会刷新所有设置。
答案 2 :(得分:0)
我和@Joe Enos一起去 除了我要使用xml文件或.ini,因为你想限制你的数据库调用。