有哪些选项可用于在asp.net mvc2中存储应用程序设置?

时间:2012-01-20 19:22:36

标签: asp.net asp.net-mvc-2 .net-4.0

我需要在某处存储应用程序设置,但找不到令人满意的解决方案。只读设置很容易存储在web.config中,但是应该可以通过网页访问的应用程序管理设置呢?写入web.config似乎不是一个好主意。我曾考虑将设置存储在自定义xml文件中,但如果设置中涉及敏感信息,那么这似乎是个问题,如果有多个用户同时修改设置,则必须进行某种文件锁定参与其中。现在我倾向于将应用程序设置存储在MS-SQL数据库中,它看起来像是一个安全且可扩展的解决方案,但是让表只存储一行 - 设置感觉不对。你怎么看?你会如何设计呢?

是否已准备好使用.NET解决方案来存储动态Web应用程序设置?

2 个答案:

答案 0 :(得分:3)

你的问题是如此主观,以至于我甚至不知道我为什么回答它而不是投票结束。但无论如何,数据库是个好地方。如果您对关系数据感到厌倦和厌倦,那么NoSQLMongoDB之类的RavenDB数据库就会非常简单。如果你想要一个非常快的数据库Redis可能值得一试。

将内容存储在Web应用程序中的文件远比首先看起来困难得多。如果只是为了readonly,那么web.config确实可以成为一个好地方。但是一旦开始编写,您将不得不考虑Web应用程序是一个多线程环境,您必须同步对此文件的访问。如果你想要正确设计它,那么首先看作是一个简单的解决方案,很快就会变成一场噩梦。这就是为什么我认为数据库是一个很好的解决方案,因为它为您提供并发性,安全性,原子性,数据完整性等......

答案 1 :(得分:2)

我绝对认为在数据库中存储动态性设置是正确的方法。有一个简单的桌子不要感到难过。这张表可以为您节省很多麻烦。如果您将其智能编码,您可以从中获益(但这取决于您要存储的值的类型)。 db的唯一问题是有人可能直接在数据库中修改值。但它很容易解决。例如,我有一个“配置值”类,我在启动时从数据库提供,并在一些超时时将其放入缓存。过了一会儿,我可以懒洋洋地再次喂它,抓住我上面提到的情况。我希望它有道理。