在ASP.NET应用程序开发中,Config文件承担着存储系统配置信息的重要职责,常见的配置包括数据库连接字符串、自定义应用参数、系统运行开关等,掌握其读写方法是开发者的必备技能。

Config文件的基本结构
ASP.NET项目的Config文件通常以web.config命名,核心配置信息主要存放在appSettings和connectionStrings两个节点中。appSettings用于存储自定义的键值对配置,connectionStrings则专门存放数据库连接字符串相关的配置。下面是一个基础的web.config配置示例:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="DefaultConnection" connectionString="Server=.;Database=TestDB;Uid=sa;Pwd=123456" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="SiteName" value="测试站点" />
<add key="MaxUploadSize" value="10240" />
</appSettings>
</configuration>
读取Config文件配置
读取Config文件配置需要引用System.Configuration命名空间,然后使用ConfigurationManager类完成操作,该方法适用于ASP.NET Web Forms和ASP.NET MVC等项目。
读取appSettings节点配置
通过ConfigurationManager.AppSettings[key]即可获取对应键的配置值,如果键不存在会返回null。下面是读取示例:
using System.Configuration;
public class ConfigReader
{
// 读取站点名称配置
public string GetSiteName()
{
string siteName = ConfigurationManager.AppSettings["SiteName"];
if (string.IsNullOrEmpty(siteName))
{
return "默认站点名称";
}
return siteName;
}
// 读取最大上传大小配置,转换为整数类型
public int GetMaxUploadSize()
{
string sizeStr = ConfigurationManager.AppSettings["MaxUploadSize"];
if (int.TryParse(sizeStr, out int size))
{
return size;
}
return 0;
}
}
读取connectionStrings节点配置
通过ConfigurationManager.ConnectionStrings[name]可以获取对应的数据库连接配置,返回的对象包含连接字符串和提供程序名称等信息。示例代码如下:
using System.Configuration;
public class DbConfigReader
{
// 获取默认数据库连接字符串
public string GetDefaultConnectionString()
{
ConnectionStringSettings connSettings = ConfigurationManager.ConnectionStrings["DefaultConnection"];
if (connSettings != null)
{
return connSettings.ConnectionString;
}
return string.Empty;
}
}
修改Config文件配置
修改Config文件需要注意,ASP.NET应用程序运行时会监控web.config文件的变化,一旦文件被修改,应用程序会重启,因此修改操作需要谨慎处理。修改配置需要使用Configuration类打开配置文件,修改后保存。
修改appSettings节点配置
下面是修改appSettings节点中指定键的值的实现代码:
using System.Configuration;
using System.Web;
public class ConfigWriter
{
// 修改appSettings中指定键的值
public void UpdateAppSetting(string key, string value)
{
// 获取当前web.config文件的配置对象
Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
// 获取appSettings节点
AppSettingsSection appSettings = config.AppSettings;
if (appSettings.Settings[key] == null)
{
// 如果键不存在则新增
appSettings.Settings.Add(key, value);
}
else
{
// 如果键存在则修改值
appSettings.Settings[key].Value = value;
}
// 保存修改
config.Save();
}
}
修改connectionStrings节点配置
修改数据库连接字符串的示例代码如下:
using System.Configuration;
using System.Web;
public class DbConfigWriter
{
// 修改指定名称的数据库连接字符串
public void UpdateConnectionString(string name, string connectionString, string providerName)
{
Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
ConnectionStringsSection connSection = config.ConnectionStrings;
if (connSection.ConnectionStrings[name] == null)
{
// 新增连接字符串配置
connSection.ConnectionStrings.Add(new ConnectionStringSettings(name, connectionString, providerName));
}
else
{
// 修改已有连接字符串配置
connSection.ConnectionStrings[name].ConnectionString = connectionString;
connSection.ConnectionStrings[name].ProviderName = providerName;
}
config.Save();
}
}
注意事项
- 修改Config文件需要有对应目录的写入权限,否则会抛出权限不足的异常。
- 修改完成后应用程序会自动重启,会导致当前会话丢失,因此不建议在高并发场景下频繁修改Config文件。
- 读取Config文件的操作属于IO操作,频繁读取时可以考虑添加缓存,减少性能损耗。
- 如果项目使用的是ASP.NET Core,Config文件的读写方式有所不同,使用的是appsettings.json文件,需要通过IConfiguration接口来操作,不再使用ConfigurationManager类。
ASP.NETConfig文件ConfigurationManagerappSettingsconnectionStrings修改时间:2026-06-09 02:48:22