Web.config 配置文件

可以存储网站配置信息, 数据库连接字符串等。

支持层次结构的多级配置文件,即存在于各个子目录中,使用时优先使用最底层的配置。

位置 描述
%windir%\Microsoft.NET\Framework\vx.x.xxxx\CONFIG\machine.config 顶级
IIS 网站目录\Web.config 一级
IIS 网站目录\虚拟目录\Web.config 二级
IIS 网站目录\虚拟目录\子目录\Web.config ...级

各个节的功能

描述
<authentication> ASP.NET 身份验证支持, 应用程序级
<authorization> 控制 URL 资源的客户访问, 任何级
<compilation> 编译设置, 默认的 debug 属性是 true
<customErrors> 提供有关自定义错误的信息
<httpRuntime> HTTP 运行库设置
<pages> 标识特定于页的配置设置
<sessionState> 为当前应用程序配置会话状态设置
<trace> 配置 ASP.NET 跟踪服务
<RewriterConfig> 网址重写服务
<configSections> 自定义配置节
<connectionStrings> 数据库连接配置
<appSettings> 字符串配置
属性 描述
connectionStrings ConnectionStringSettings 集合对象
connectionStrings.Count ConnectionStringSettings 集合数量
connectionStrings("name").ConnectionString 返回 name="name" 的 connectionString 属性值

web.config 文件示例:

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
   <appSettings>
      <add key="connstr" value="localhost\sqlexpress" />
   </appSettings>
   <connectionStrings>
      <add name="LocalSqlPubs" connectionString="Server=(local);Integrated Security=True;Database=Pubs" providerName="System.Data.SqlClient" />
   </connectionStrings>
<configuration>

读取配置的代码:

// 读取代码 (VB)

Dim connectionString As String = System.Configuration.ConfigurationManager.ConnectionStrings("LocalSqlPubs").ConnectionString
connectionString = System.Configuration.ConfigurationManager.AppSettings("connstr")

// 读取代码 (C#)

string abc = System.Configuration.ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
abc = System.Configuration.ConfigurationManager.AppSettings["connstr"];

数据库连接代码:

// 获得数据提供者工厂
public static DbProviderFactory GetFactory()
{
    return DbProviderFactories.GetFactory(System.Configuration.ConfigurationManager.ConnectionStrings["LocalSqlPubs"].ProviderName);
}

// 获得数据库连接对象
public static DbConnection GetConnection()
{
    DbConnection cn = GetFactory().CreateConnection();
    cn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["LocalSqlPubs"].ConnectionString;
    cn.Open();
    return cn;
}