11.7  使用web.config配置文件

Web配置文件web.config是Web 应用程序的数据设定文件,它是一份 XML 文件,内含 Web 应用程序相关设定的 XML 标记,可以用来简化 ASP.NET 应用程序的相关设定。

11.7.1  Web配置文件的基础

Web 配置文件web.config位于 Web 应用程序的任何目录中,子目录如果没有 web.config 文件,就是继承父目录 web.config 文件的相关设定;如果子目录有 web.config 文件,就会覆盖父目录 web.config 文件的相关设定。

.NET Framework 根配置文件名称是 Machine.config,存储在 Windows 文件夹下Microsoft.NET/Framework/<version>/CONFIG,整个 Web 服务器所有 Web 应用程序的设定都是继承此配置文件,如果需要更改设定,可使用 web.config 文件在各目录中覆盖相关设定。

Web 配置文件是一份 XML 文件,在 XML 标记的属性就是设定值,标记名称和属性值格式是字符串,第 1 个开头字母是小写,之后每一字头是大写,例如<appSettings>。Web 配置文件的范例如下所示。

<configuration>

<appSettings>

<add key="dbType" value="Access Database"/>

</appSettings>

<connectionStrings>

<add name="provider"

connectionString="Microsoft.Jet.OLEDB.4.0;"/>

<add name="database"

connectionString="/Ch11/Products.mdb"/>

</connectionStrings>

<system.web>

<sessionState cookieless="false" timeout="10"/>

<globalization

fileEncoding="gb2312"

requestEncoding=" gb2312"

responseEncoding=" gb2312"

culture="zh-CN"/>

<compilation defaultLanguage="VB" debug="true"/>

<customErrors mode="RemoteOnly"/>

</system.web>

</configuration>

上述 Web 配置文件的根标记是<configuration>,其子标记<appSettings>、<connectionStrings>和<system.web>是各设定区段。在<system.web>下的设定区段属于ASP.NET相关设定。常用设定区段标记说明如表11-9所示。

表11-9  常用设定区段标记

设 定 区 段

说    明

<anonymousIdentification>

控制 Web 应用程序的匿名用户,详细说明参阅第 16 章

<authentication>

设定 ASP.NET 验证方式,参阅第 13 章

<authorization>

设定 ASP.NET 用户授权,参阅第 13 章

<browserCaps>

设定浏览程序兼容组件 HttpBrowserCapabilities

<compilation>

设定 ASP.NET 应用程序的编译方式

<customErrors>

设定 ASP.NET 应用程序的自订错误处理

<globalization>

关于 ASP.NET 应用程序的全球化设定,也就是本地化设定

<httpHandlers>

设定 HTTP 处理是对应到 URL 请求的 IHttpHandler 类

<httpModules>

创建、删除或清除 ASP.NET 应用程序的 HTTP 模块

<httpRuntime>

ASP.NET 的 HTTP 执行期相关设定

<identity>

设定 ASP.NET 应用程序的用户识别是使用服务器端用户账号的权限(impersonate 属性),或指定的用户账号(userName 和 password 属性)

<machineKey>

设定在使用窗体基础验证的 Cookie 数据时,用来加码和解码的金钥值

<membership>

设定 ASP.NET 的 Membership 机制,参阅第 13 章

<pages>

设定 ASP.NET 程序的相关设定,即 Page 指引命令的属性

<profile>

设定个人化信息的 Porfile 对象,详细说明参阅第 14 章

<roles>

设定 ASP.NET 的角色管理,详细说明参阅第 13 章

<sessionState>

设定 ASP.NET 应用程序的 Session 状态 HttpModule

(续表)

设 定 区 段

说    明

<siteMap>

设定 ASP.NET 网站导览系统,详细说明参阅第 12 章

<trace>

ASP.NET 应用程序的除错功能,可以设定是否追踪应用程序的执行

<webParts>

设定ASP.NET应用程序的网页组件,详细说明参阅第18章

<webServices>

设定 ASP.NET 的 Web 服务,详细说明参阅第 18 章

11.7.2  appSetting与connectionStrings区段的参数和连接字符串

在 Web 配置文件的 <appSettings> 区段可以创建 ASP.NET 程序所需的参数,ASP.NET 2.0 新增 <connectionStrings> 区段,可以指定数据库连接字符串。

1. Web配置文件web.config的内容

在web.config文件<configuration>标记的子标记<appSettings> 和 <connectionStrings> 区段中,可以创建参数和数据库连接字符串,如下所示。

<configuration>

<appSettings>

<add key="dbType" value="Access Database"/>

</appSettings>

<connectionStrings>

<add name="provider"

connectionString="Microsoft.Jet.OLEDB.4.0;"/>

<add name="database"

connectionString="/Ch11/Products.mdb"/>

</connectionStrings>

<system.web>

………

</system.web>

</configuration>

上述 <appSettings> 标记的子标记是创建参数,每一个 <add> 标记可以创建一个参数,属性 key 是参数名称,value 是参数值。

在 <connectionStrings> 标记的 <add> 子标记也可以创建连接字符串,属性 name 是名称,connectionString 属性是连接字符串内容。

2. Conifguration API的基础

ASP.NET 2.0 的 Configuration API 可以存取 web.config 和 machine.config 配置文件的设定数据。在ASP.NET 程序中是使用 System.Web.Configuration 名称空间的 WebConfigurationManager 类来存取相关设定。首先导入所需的名称空间,如下所示。

<%@ Import NameSpace="System.Web.Configuration" %>

上述 Import命令导入 System.Web.Configuration 名称空间,接着就可以获取 <appSettings> 区段创建的参数,如下所示。

Dim dbType As String = WebConfigurationManager.AppSettings("dbType")

上述程序代码使用AppSettings属性获取指定参数,使用的是<add>标记的key 属性。同样可以获取<connectionStrings>区段的数据库连接字符串,如下所示。

Dim pd, db As String

pd = WebConfigurationManager.ConnectionStrings( _

"provider").ConnectionString

db = WebConfigurationManager.ConnectionStrings( _

"database").ConnectionString

上述程序代码使用 ConnectionStrings 属性获取参数 provider 和 database 的值,即 <add> 标记的 name 属性。完整 ASP.NET 程序范例是 Ch11-7-2.aspx,其执行结果使用表格显示数据表记录,如图11-12所示。

图11-12  Ch11-7-2.aspx运行结果

上图的Access Database是<appSettings>区段的应用程序参数,数据表是使用 GridView控件来显示记录数据,数据库连接字符串是定义在web.config 文件。

11.7.3  在sessionState区段设定Session状态

ASP.NET的Session状态管理拥有扩充性,可以在web.config文件的 <sessionState>区段设定Session状态管理,它属于<system.web>的子标记,如下所示。

<configuration>

<system.web>

<sessionState cookieless="false" timeout="10"/>

………

</system.web>

</configuration>

上述<sessionState>标记的常用属性如表11-10所示。

表11-10  <sessionState> 标记的常用属性

属    性

说    明

mode

Session 状态存储的位置可以是 off(不存储)、InProc(使用Cookie)、StateServer(使用状态服务器)和 SqlServer(存储在 SQL Server)

cookieless

是否使用 Cookie 存储 Session 状态。True 为不使用,False 为使用

timeout

Session 时间的期限,以分钟计,默认值为20 分钟,其功能如同 Session 对象的 TimeOut 属性

11.7.4  globalization区段的编码设定

在<system.web>子标记的<globalization>区段是本地化相关设定,可以设定 ASP.NET 程序默认的文件编码、请求和响应的编码方式、日期时间格式和数字等本地化设定,如下所示。

<configuration>

<system.web>

<globalization

fileEncoding="gb2312"

requestEncoding=" gb2312"

responseEncoding=" gb2312"

culture="zh-CN"/>

………

</system.web>

</configuration>

上述标记属性设定编码方式gb2312,culture是本地化设定值,zh-CN为中国大陆。相关属性说明如表11-11所示。

表11-11  globalization 区段的相关属性

属    性

说    明

requestEncoding

指定 Request 请求的编码方式,默认为UTF-8 编码,大多数情况 requestEncoding 和 responseEncoding 属性的编码应该相同

responseEncoding

指定 Response 响应的编码方式,默认为UTF-8 编码

fileEncoding

指定扩展名 .aspx、.asmx 和 .asax 文件默认的编码方式

culture

指定本地化的语系地区,不同的地区拥有不同的日期时间格式、数字等默认的本地化设定

上表culture属性值可以使用语系和地区代码,以中文语系来说的 culture 属性值如表11-12所示。

表11-12  culture 属性值可以使用语系和地区代码

culture 属性值

语系或地区

zh-HK

香港

zh-MO

澳门

zh-CN

中国大陆

zh-SG

新加坡

zh-TW

台湾

zh-CHS

中文简体

zh-CHT

中文繁体

11.7.5  compilation区段的编译设定

在 <system.web> 子标记的 <compilation> 区段,可以设定 ASP.NET 程序默认的编译方式,如下所示。

<configuration>

<system.web>

<compilation defaultLanguage="VB" debug="true"/>

………

</system.web>

</configuration>

上述标记属性设定默认程序语言和是否打开除错模式。相关属性说明如表11-13所示。

表11-13  compilation区段的相关属性

属    性

说    明

debug

是否打开除错模式,默认为 False 不打开,True 为打开

defaultLanguage

默认的程序语言,例如C#、VB 或 PERL,默认值是 VB

explicit

Microsoft Visual Basic 是否使用 explicit 方式编译,也就是所有变量都需要事先声明,默认值是 True

在 web.config 文件中使用 compilation 标记,如同 ASP.NET 程序文件开头加上 Page 命令的 Language 和 Debug 属性,如下所示。

<%@ Page Language="VB" Debug="True" %>

11.7.6  customErrors区段的自订错误网页

在 <system.web> 子标记 <customErrors> 区段,可以设定 ASP.NET 程序的自订错误网页。例如错误代码 HTTP 404,如图11-13所示。

图11-13  显示错误信息

上述错误信息是默认错误网页,显示找不到网页数据错误。在 <customErrors> 区段可以指定错误网页,如下所示。

<configuration>

<system.web>

<customErrors mode="On" defaultRedirect="Ch11-7error.htm"/>

………

</system.web>

</configuration>

上述标记属性设定模式为 On。相关属性说明如表11-14所示。

表11-14  customErrors区段的相关属性

属    性

说    明

mode

是否启动自订错误功能,On为启动自订错误处理,此时需要指定 defaultRedirect 属性,Off为取消自订错误处理,RemoteOnly 指定自订错误处理只显示在远程客户端,本地计算机仍然显示 ASP.NET 默认错误网页,此为默认值

defaultRedirect

指定 URL 网址,当错误产生时就转址到此网址的网页,此例是显示 Ch11-7error.htm 网页

在 customErrors 区段拥有多个 error 子标记,每一个 error 标记可以定义 HTTP 错误代码的自订错误网页,如下所示。

<configuration>

<system.web>

<customErrors mode="On"

defaultRedirect="Ch11-7error.htm">

<error statusCode="404"

redirect="NotFoundError.htm"/>

</customErrors>

</system.web>

</configuration>

上述的 error 标记使用 statusCode 属性指定 HTTP 错误代码为 404,如果错误产生,就转址到 redirect 属性值的 NotFoundError.htm 网页。

.net中Web.config文件的基本原理及相关设置的更多相关文章

  1. C#中web.config文件详解

    C#中web.config文件详解 一.认识Web.config文件 Web.config 文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NE ...

  2. IOC注入框架——Unity中Web.Config文件的配置与调用

    Unity 应用程序块可以从 XML 配置文件中读取配置信息.配置文件可以是 Windows Forms 应用程序的 App.config 或者 ASP.NET 应用程序的 Web.config.当然 ...

  3. Unity中Web.Config文件的配置与调用

    在上一篇文章“Unit简单依赖注入”我们可以实现构造对象和被依赖对象之间的 松耦合,使我们的抽象层(Player)能够保持稳定,但是在并没有把客户类和Player类之间彻底解耦,即当我们不想使用MP3 ...

  4. [转载]C# 中Web.config文件的读取与写入

    asp.net2.0新添加了对web.config直接操作的功能.开发的时候有可能用到在web.config里设置配置文件,其实是可以通过程序来设置这些配置节的. asp.net2.0需要添加引用: ...

  5. C# 中Web.config文件的读取与写入

    asp.net2.0新添加了对web.config直接操作的功能.开发的时候有可能用到在web.config里设置配置文件,其实是可以通过程序来设置这些配置节的. asp.net2.0需要添加引用: ...

  6. Web.Config文件中使用configSource

    我们都知道,在asp.net中修改了配置文件web.config后,会导致应用程序重启,所有会话(session)丢失.然而,应用程序的配置信息放在配置文件里是最佳选择,在后台修改了配置后导致所有会话 ...

  7. HTTP 错误 500.19 – Internal Server Error web.config 文件的 system.webServer/httpErrors 节中不允许绝对物理路径“C:\inetpub\custerr”[转]

    给ASP或者ASP.NET等需要配置IIS服务器的过程中,很可能会遇到以下两种错误.尤其是用Win7系统的,配置IIS7.0版本比用XP系统配置IIS5.1版本而言要复杂复杂一些.当同时需要配置ASP ...

  8. 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)

    原文:在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据) 我们都知道,在asp.net中修改 ...

  9. Web.config 文件中的 system.webServer

    Web.config 文件中的 system.webServer 节用于指定适用于 Web 应用程序的 IIS 7.0 设置.system.WebServer 是 configuration 节的子级 ...

随机推荐

  1. HTML5 canvas生成图片马赛克特效插件

    HTML5 canvas生成图片马赛克特效插件 简要教程 这是一款使用html5 canvas来将图片制作成马赛克效果的js插件.该插件的灵感来自于美国肖像画家Chuck Close.已经有人使用这个 ...

  2. php的session实现

    对于两次http请求,如果第一次http请求的重要数据要被第二次请求获取,办法是将第一次http请求数据保存下来,保存的办法很多,大体上有使用数据库,缓存,文件等等,那么php中的session实现实 ...

  3. js JSONP实例

    <script type="text/javascript"> $(function(){ checkuserstatus(); $('#loginbutton').c ...

  4. SqlServer将数据库中的表复制到另一个数据库

    前述: 文章来自百度经验 操作: 在使用SqlServer的过程中,我们可能需要将表从一个数据库复制到另一个数据库中,今天,为大家介绍这种操作的具体方法及步骤. 复制表结构 1 首先,打开并连接Sql ...

  5. 转:cookie和session(一)——原理

    文章来自于:http://blog.csdn.net/half1/article/details/21645545 一.cookie和session是什么?   cookie是服务器留在客户端中的小文 ...

  6. EventSystem

    Unity5.0 EventSystem事件系统的详细说明 一.EventSystem对象的说明 当我们在场景中创建任一UI对象后,Hierarchy面板中都可以看到系统自动创建了对象EventSys ...

  7. CSS中定位position

    毋庸置疑的是,pisition是css中是最重要的属性之一. 一共有四种定位方式,static.relative.absolute.fixed. 默认的定位方式static 页面中所有的元素默认都是s ...

  8. 001Spark文件分析测试

    使用spark-1.4.1-bin-hadoop2.6进行处理,测试文件大小为3G, 测试结果: 1:统计一个文件中某个字符的个数 scala> sc.textFile("/home/ ...

  9. 软硬大比拼 硅胶、TPU和PC材质对比

    手机保护壳的材质有很多种,目前保护壳市场上最为常见的就是硅胶.TPU.PC材质了.那么我们不禁要问,PU.硅胶.PC三材质到底有哪些区别呢?普通消费者在购买保护壳的时候能否从外表就能看出保护壳材质?P ...

  10. 如何修正Feedly文章中文標題亂碼或無法正常顯示的問題

    在7月1日Google關閉Reader之前,我想應該有許多人都已經從Google Reader移到其他服務上了,其中受益最大的者莫過於Feedly了,一下子就吸收了幾百萬的用戶,而我也是其中之一,由於 ...