Web.config中的配置信息
web.config中的节点关系表示如下:
configuration :指定公共语言运行时和.NET Framework应用程序所使用的每个配置文件中均需要的根元素。 此元素中的配置信息分为两个主区域:配置节处理程序声明区域和配置节设置区域
1、 configSections:指定配置节和命名空间声明。(定义自己的节点必须在configSections节点。)
section:定义配置节处理程序与配置元素之间的关联。
remove:移除对继承的节和节组的引用
clear:移除对继承的节和节组的所有引用,只允许由当前section和sectionGroup元素添加的节和节组。
sectionGroup:定义配置节处理程序与配置节之间的关联。sectionGroup元素充当section元素的容器。
section 元素将配置节处理程序与配置元素或节关联。由于 ASP.NET 不对如何处理配置文件内的设置作任何假设,因此这非常必要。但 ASP.NET 会将配置数据的处理委托给配置节处理程序。
每个 section 元素均标识一个配置节或元素,以及从处理配置节或元素的 ConfigurationSection 派生的关联类。可以在 sectionGroup 元素中对 section 元素进行逻辑分组以便进行组织,并帮助避免命名冲突。 section 和 sectionGroup 元素包含在 configSections 元素中。
<configSections> <sectionGroup name="section group name"> <section name="section name" type="configuration section handler class, assembly file name, version, culture, public key token"
allowDefinition="Everywhere|MachineOnly|MachineToApplication|MachineToWebRoot" allowLocation="False|True" restartOnExternalChanges="True|False"/> </sectionGroup>
</configSections>
对上面的参数讲解如下:
特性 | 说明 | 值(说明) |
allowDefinition |
仅适用于ASP.NET应用程序。 指定可以在哪配置文件中使用该节点。 如果没有使用allowDefinition特性,则假设为Everywhere。这是默认值。 |
Everywhere:允许在任何配置文件或目录配置该节点:Machine.config、根web.config、应用程序的web.config、虚拟目录、应用程序中的物理子目录。 MachineToApplication:允许在下列文件之一中配置该节: Machine.config、根web.config、应用程序的web.config MachineToWebRoot:允许在下列文件之一中配置该节: Machine.config、根web.config(Machine.config和根Web.config文件都位于%SystemRoot%\Microsoft.NET\Framework\版本号\CONFIG中) MachineOnly:只允许在Machine.config文件中配置该节,该文件位于SystemRoot%\Microsoft.NET\Framework\版本号\CONFIG中 |
allowExeDefinition |
仅适用于.NET Framework客户端应用程序。 指定可以在哪个配置文件中使用该节。 |
MachineToApplication:允许在下列文件之一中配置该节: Machine.config、应用程序配置 MachineToRoamingUser MachineToLocaUser MachineOnly:只允许在Machine.config文件中配置该节。 |
allowLocation |
可选Boolean特性。 仅适用于ASP.NET应用程序。 指定是否可以在location元素内使用该节。 默认值为True。 |
|
name |
必选String特性 指定与type特性中指定的配置节处理程序关联的配置节或元素的名称。这是该元素在配置文件的节设置区域中使用名称 |
|
restartOnExternalChanges |
可选Boolean特性 不适用于ASP.NET应用程序 指定在该节的配置数据发生更改时是否应当重新启动应用程序 |
|
type |
必选String特性 指定用来执行如下操作的配置节处理程序类的名称:处理在name特性中指定的节或元素中的配置设置。适用格式为:type=“完全限定类名,程序集文件名,版本,区域性,公钥标记” 定义必须匹配程序集引用。程序集文件必须与定义它的web.config文件位于同一个应用程序目录中。对于根web.config文件或Machine.config文件,程序集必须位于%SystemRoot%\Microsoft.NET\Framework\版本目录中。 |
2、appSettings:包含自定义应用程序设置,如文件路径、XML Web services URL或存储在应用程序的.ini文件中的任何信息
<appSettings file="relative file name"> <add key="email" value="nihao@163.com" /><!--定义一个字符串常量--> <add key= "ErrPage " value= "Error.aspx "/><!--定义一个错误重定向页面--> <add key="Application Name" value="MyApplication" /> <add key="XML File Name" value="myXmlFileName.xml" />
</appSettings>
add:可选元素。向应用程序设置集合添加名称/值对形式的自定应用程序设置。(key:指定应用程序设置的名称,此特性是集合键;value:指定应用程序设置的值。
clear:可选元素。移除所有对继承的自定义应用程序设置的引用,仅允许由当前add特性添加的引用。
remove:可选元素。从应用程序设置集合中移除对继承的自定义应用程序设置的引用。
3、 connectionStrings:为ASP.NET应用程序和功能指定数据库连接字符串(名称/值对的形式)的集合。
<connectionStrings> <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
name:定义用于访问连接字符串值的键。此特性重写同名的任何继承键。默认值为空字符串(“”)。
connectionString:定义连接字符串值。该值可以为空字符串(“”)。无需进行检查来验证其有效性。默认值为空字符串(“”)。
providerName:用于访问基础数据存储的ADO.NET提供程序的名称。默认值为“System.Data.SqlClient"。
<compilation debug="true" targetFramework="4.0" >
debug="true"以启用aspx调试。以将调试符号(.pdb信息)插入到编译页中。因为这将创建执行起来较慢的大文件,所以应该只在调试时将此值设置为true,而在所有其他时候都设置为false
debug=“false”将提高此应用程序的运行时性能。
sessionState:
<sessionState mode="InProc|Off|StateServer|SQLServer|Custom" timeout="分钟"
stateConnectionString="tcpip=服务器:端口号" sqlConnectionString="sql连接字符串" cookieless="false|true" stateNetworkTimeout="秒"/>
mode:
Off:不使用session功能;
Inproc:将session存储在进程内,就是ASP中的存储方式(此方式为默认方式);
StateServer:将session存储在独立的状态服务中;
SQLServer:将session存储在SQL Server中。
Custom : 模式指定了你需要用来存储会话状态数据的一个自定义会话状态存储提供者。在你使用 Custom
模式来配置 ASP.NET 应用程序的时候,你必须使用 sessionState
配置元素的 providers
子元素来指定会话状态存储提供者的类型。
cookieless :设置客户端的session信息存储到哪里(true表示使用Cookieless模式,false表示使用Cookie模式,此为默认)
timeout:经过多少分钟后服务器自动放弃session信息。默认时间为20分钟
stateConnectionString:将session信息存储在状态服务中时使用的服务器名称和端口号,如:tcpicp=127.0.0.1:42424.当mode的值是StateServer时,此属性是必须地。
sqlConnectionString:与SQL Server连接时的连接字符串。例如:data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind。当mode是SQLServer时,此属性是必须地
stateNetworkTimeout:当使用StateServer模式存储Session状态时,经过多少秒空闲后,断开Web服务器与存储状态信息的服务器的TCP/IP连接的。默认值是10秒钟。
注:其中mode属性必须有,其它属性可选。
详细讲解:http://www.cnitblog.com/seeyeah/archive/2007/01/20/22089.html
http://www.cnblogs.com/Laeb/archive/2007/01/18/624030.html
msdn: http://msdn.microsoft.com/en-us/library/ms178586(v=vs.100).aspx (英文版)
http://msdn.microsoft.com/zh-cn/library/ms178586(v=vs.100).aspx (中文版)
http://msdn.microsoft.com/zh-cn/library/ms228147(v=vs.100).aspx
本文章是根据msdn和几位博友的文章总结的。