【发布时间】:2012-01-30 08:23:43
【问题描述】:
我正在寻找一个地方来存储我的网站配置,这些配置将通过网站的管理面板进行更改(例如选择主题、更改主页标题等)。我知道web.config 是只读的,当然我不想为此使用数据库。那么解决这个问题的标准方法是什么?
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 web-config
我正在寻找一个地方来存储我的网站配置,这些配置将通过网站的管理面板进行更改(例如选择主题、更改主页标题等)。我知道web.config 是只读的,当然我不想为此使用数据库。那么解决这个问题的标准方法是什么?
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 web-config
当然我不想为此使用数据库
好吧,你没有多少选择了。您始终可以使用文件,但在多线程环境(例如 ASP.NET 应用程序)中,您需要同步对它们的访问,以确保 2 个线程不会同时尝试写入文件或在一个线程正在写入时到文件另一个没有从它读取。您可以为此使用ReaderWriterLockSlim。就该文件的格式而言,您可以使用任何您觉得合适的格式:CSV、XML、JSON,甚至是二进制序列化(如果您愿意)。
【讨论】:
如果您出于某种原因肯定不想使用DB。
我认为XML 是保存配置的最佳选择。就像web.config.
请确保在访问此文件时使用lock,这样您就不会遇到不同步的灾难...
【讨论】:
如果它只是用于站点管理,设置应用程序范围的设置(例如标题),那么存储在一个文件中就可以了一次由两个人(阻止多个站点管理员同时登录可以消除此问题)。
如果您希望允许用户选择他们自己的主题、时区等,那么您最好将其存储在数据库中。
【讨论】: