这是在asp.net中存储少量永久数据的最佳方式

时间:2013-05-17 12:02:00

标签: asp.net file-upload

我必须永久存储上传的文件版本和以前的文件名和版本,而且,我需要更新和检索该信息,但我没有为此应用程序使用任何数据库。是否可以将数据保存在Web.Config文件中并能够更新?

3 个答案:

答案 0 :(得分:5)

请勿将其保留在Web.Config中。更新web.config会导致应用程序池回收,而是根据需要将其存储在某个XML文件中。不确定为什么要为此目的避免使用数据库,但您甚至可以将其存储在基于文件的数据库中,如SQLite

答案 1 :(得分:0)

如果您愿意,可以将数据保存在web.config中,但我不会真的推荐它。 但如果它是一个小应用程序,并不真正关心用户的会话状态/应用程序池,那么我不明白为什么不。

<configuration>
    <appSettings>
        <add key="Version" value="2.0.0.0" />
    </appSettings>
</configuration>

然后您可以按照以下方式检索数据

ConfigurationManager.AppSettings["Version"]

然而您可以创建自己的 xml 文件,然后在代码中检索它,如下所示

XML

<ApplicationConfig>
    <Version>2.0.0.0</Version>
</ApplicationConfig>

然后在你的代码中

if (File.Exists(configFile))
{
    var xml = XDocument.Load(configFile);
            if (xml.Root != null)
            {
                var version = xml.Root.Elements("ApplicationConfig").Elements("Version").Value
            }
}

答案 2 :(得分:0)

将数据存储在文件中是一种方法。有几点需要注意:

  1. 使用App_Data子文件夹,但也要确保您的应用程序池标识具有写入权限。
  2. 使用线程安全的方法来编写和读取该文件(例如全局锁定)。
  3. 或者,您可以在HKEY_CURRENT_USER下的registry中写下该值。这种方法不需要在文件系统上设置权限,这有时是不可能的。

    如果您存储的信息对于您可能想要使用ASP.NET Profile的用户而言是唯一的。由于您不想使用数据库,因此可以使用custom provider将数据存储在XML文件中。