自定义web.config节点
- 格式:docx
- 大小:17.49 KB
- 文档页数:3
web.config文件是一个XML文件,它的根结点是<configuration>,在<configuration>节点下的常见子节点有:<configSections>、<appSettings>、<connectionStrings>和<system.web>。
其中<appSettings>节点主要用于配置一些网站的应用配置信息,而<connectionStrings>节点主要用于配置网站的数据库连接字符串信息。
<system.web>节点主要是网站运行时的一些配置,它的常见节点有如下:Web.config常用配置<appSettings>节点<appSettings>节点主要用来存储应用程序的一些配置信息,系统常用的一些全局变量,如上传文件的保存路径等。
<appSettings><!--允许上传的图片格式类型--><add key="ImageType" value=".jpg;.bmp;.gif;.png;.jpeg"/><!--允许上传的文件类型--><add key="FileType" value=".jpg;.bmp;.gif;.png;.jpeg;.pdf;.zip;.rar;.xls;.doc"/></appSettings>对于<appSettings>节点中的值可以按照key来进行访问,以下就是一个读取key值为“FileType”节点值的例子:string fileType=ConfigurationManager.AppSettings["FileType "];<authentication>节点设置身份验证模式,有四种身份验证模式,它们的值分别如下:Mode 说明Windows 使用Windows身份验证,适用于域用户或者局域网用户。
解决在Web.config或App.config中添加自定义配置的方法详解本篇文章是对在Web.config或App.config中添加自定义配置的方法进行了详细的分析介绍,需要的朋友参考下.Net中的System.Configuration命名空间为我们在web.config或者app.config中自定义配置提供了完美的支持。
最近看到一些项目中还在自定义xml文件做程序的配置,所以忍不住写一篇用系统自定义配置的随笔了。
如果你已经对自定义配置了如指掌,请忽略这篇文章。
言归正传,我们先来看一个最简单的自定义配置<?xml version="1.0" encoding="utf-8" ?><configuration><configSections><section name="simple"type="ConfigExample.Configuration.SimpleSection,ConfigExample"/></configSections><simple maxValue="20" minValue="1"></simple></configuration>在配置文件中使用自定义配置,需要在configSections中添加一个section元素,并制定此section元素对应的类型和名字。
然后再在configuration根节点下面添加此自定义配置,如上例中的simple节点。
simple节点只有两个整形数的属性maxValue和minValue。
要在程序中使用自定义配置我们还需要实现存取这个配置块的类型,一般需要做如下三件事:1. 定义类型从System.Configuration.ConfigurationSection继承2. 定义配置类的属性,这些属性需要用ConfigurationProperty特性修饰,并制定属性在配置节中的名称和其他一些限制信息3. 通过基类的string索引器实现属性的get ,set非常简单和自然,如下是上面配置类的实现:public class SimpleSection:System.Configuration.ConfigurationSection{[ConfigurationProperty("maxValue",IsRequired=false,DefaultValue=Int32.MaxValue)]public int MaxValue{get{return(int)base["maxValue"];}set{base["maxValue"] = value;}}[ConfigurationProperty("minValue",IsRequired=false,DefaultValue=1)]public int MinValue{get { return (int) base["minValue"];}set { base["minValue"] = value; }}[ConfigurationProperty("enabled",IsRequired=false,DefaultValue=true)]public bool Enable{get{return (bool)base["enabled"];}set{base["enabled"] = value;}}}这样子一个简单的配置类就完成了,怎么在程序中使用这个配置呢?需要使用ConfigurationManager类(要引用System.configuration.dll这个dll只有在.Net2.0之后的版本中才有)的GetSection方法获得配置就可以了。
配置webconfig记录下webconfig的配置(复制很久的笔记):1、配置Session在url传递在web.config中的 <system.web> 节点下添加,⼿动修改session的相关设置<sessionState timeout="5" cookieless="true"> </sessionState>2、配置上传⽂件⼤于4M,⾥⾯是字节数,⽐如下⾯10M是1024*1024*10<system.web><httpRuntime targetFramework="4.5" maxRequestLength="10485760"/></system.web>3、⽐如上传1g的内容。
请求的筛选模块是被直接拒绝,不会到后台指定的页⾯的,跟上⾯的界⾯配置要相同才⾏<configuration><system.webServer><security><requestFiltering><requestLimits maxAllowedContentLength="1073741824"></requestLimits></requestFiltering></security></system.webServer></configuration>4、⾃定义⼀般处理程序类及配置①新建⼀个类,继承IHttpHandler,实现⾥⾯的ProcessRequest⽅法与IsReusable属性。
属性中如果get{return false;}表⽰每次浏览器的请求都会新创建这个⼀般处理程序的类的对象,为true每次浏览器请求都是重⽤第⼀次创建的类的对象②⽐如⽤户需要xxx.hh这样⼦在浏览器中访问,我们新建的这个类继承IhttpHandler接⼝之后实现⾥⾯的代码专门接管处理这样的需求。
一、认识Web.config文件Web.config 文件是一个XML文本文件,它用来储存 Web 应用程序的配置信息(如最常用的设置 Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。
当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。
如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。
它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。
(一).Web.Config是以XML文件规范存储,配置文件分为以下格式1.配置节处理程序声明特点:位于配置文件的顶部,包含在<configSections>标志中。
2.特定应用程序配置特点: 位于<appSetting>中。
可以定义应用程序的全局常量设置等信息.3.配置节设置特点: 位于<system.Web>节中,控制运行时的行为.4.配置节组特点: 用<sectionGroup>标记,可以自定义分组,可以放到<configSections>内部或其它<sectionGroup>标记的内部.(二).配置节的每一节1.<configuration>节根元素,其它节都是在它的内部.2.<appSetting>节此节用于定义应用程序设置项。
对一些不确定设置,还可以让用户根据自己实际情况自己设置用法:I.<appSettings><add key="Conntction" value="server=192.168.85.66;userid=sa;password=;database=Info;"/><appSettings>定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码. II.<appSettings><add key="ErrPage" value="Error.aspx"/><appSettings>定义了一个错误重定向页面.3.<compilation>节格式:<compilationdefaultLanguage="c#"debug="true"/>I.default language: 定义后台代码语言,可以选择C#和两种语言.IIdebug : 为true时,启动aspx调试;为false不启动aspx调试,因而可以提高应用程序运行时的性能。
web.config中节点配置的实战应用当我们完成了web开发,并将站点部署到服务器上以后,难免会因为各种原因,碰到网站报错的问题。
而当我们打开服务器链接时,结果一般是这样的:而打开本地链接是这样的:这个显示结果,就是web.config中<customErrors>节点配置造成的。
<customErrors>节点用于定义一些自定义错误信息的信息。
此节点有Mode和defaultRedirect两个属性,其中defaultRedirect属性是一个可选属性,表示应用程序发生错误时重定向到的默认URL,如果没有指定该属性则显示一般性错误。
Mode属性是一个必选属性,它有三个可能值,它们所代表的意义分别如下:Mode 说明On 表示在本地和远程用户都会看到自定义错误信息。
Off 禁用自定义错误信息,本地和远程用户都会看到详细的错误信息。
RemoteOnly 这个是缺省值,表示本地用户将看到详细错误信息,而远程用户将会看到自定义错误信息。
这里有必要说明一下本地用户和远程用户的概念。
当我们访问应用程时所使用的机器和发布应用程序所使用的机器为同一台机器时称为本地用户,反之则称之为远程用户。
所以在默认 Mode=” RemoteOnly”时,我们在服务器打开服务器链接,也会看到以下页面:在开发调试阶段为了便于查找错误Mode属性建议设置为Off,而在部署阶段应将Mode属性设置为On或者RemoteOnly,以避免这些详细的错误信息暴露了程序代码细节从而引来黑客的入侵。
我们先配置<customErrors>如下:<customErrors mode="RemoteOnly"defaultRedirect="ErrorPage.html" />并在根目录下添加HTML页面ErrorPage.html:<!DOCTYPE html><html><head><meta charset="utf-8" /><title></title></head><body>This is ErrorPage!</body></html>这时如果本地运行报错,将看到以下页面:远程访问时看到的效果:如果我们将customErrors的Mode属性设置为“On”本地运行和远程访问都会看到如下效果:如果将customErrors的Mode属性设置为“Off”本地运行和远程访问都会看到如下效果:另外,在<customErrors>节点下还包含有<error>子节点,这个节点主要是根据服务器的HTTP错误状态代码而重定向到我们自定义的错误页面,注意要使<error>子节点下的配置生效,必须将<customErrors>节点节点的Mode属性设置为“On”。
一、认识Web.config文件Web.config 文件是一个xml文本文件,它用来储存 Web 应用程序的配置信息(如最常用的设置 Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。
当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。
如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。
它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。
(一).Web.Config是以xml文件规范存储,配置文件分为以下格式1.配置节处理程序声明特点:位于配置文件的顶部,包含在<configSections>标志中。
2.特定应用程序配置特点: 位于<appSetting>中。
可以定义应用程序的全局常量设置等信息.3.配置节设置特点: 位于<system.Web>节中,控制运行时的行为.4.配置节组特点: 用<sectionGroup>标记,可以自定义分组,可以放到<configSections>内部或其它<sectionGroup>标记的内部.(二).配置节的每一节1.<configuration>节根元素,其它节都是在它的内部.2.<appSetting>节此节用于定义应用程序设置项。
对一些不确定设置,还可以让用户根据自己实际情况自己设置用法:I.<appSettings><add key="Conntction"value="server=192.168.85.66;userid=sa;password=;database=Info;"/><appSettings>定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码.II.<appSettings><add key="ErrPage" value="Error.aspx"/><appSettings> 定义了一个错误重定向页面.3.<compilation>节格式:<compilationdefaultLanguage="c#"debug="true"/>I.default language: 定义后台代码语言,可以选择c#和两种语言.IIdebug : 为true时,启动aspx调试;为false不启动aspx调试,因而可以提高应用程序运行时的性能。
Web.co nfig配置文件详解(新手必看)花了点时间整理了一下A SP.NE T Web.conf ig配置文件的基本使用方法。
很适合新手参看,由于W eb.co nfig在使用很灵活,可以自定义一些节点。
所以这里只介绍一些比较常用的节点。
<?xml vers ion="1.0"?><!--注意:除了手动编辑此文件以外,您还可以使用Web 管理工具来配置应用程序的设置。
可以使用V isual Stud io 中的“网站”->“As配置”选项。
设置和注释的完整列表在machi ne.co nfig.comme nts 中,该文件通常位于"Windo ws"Mi croso ft.Ne t"Fra mewor k"v2.x"Con fig 中。
--><!--Webc onfig文件是一个xml文件,conf igura tion是xml文件的根节点,由于xml 文件的根节点只能有一个,所以W ebcon fig的所有配置都是在这个节点内进行的。
--><conf igura tion><!--指定配置节和命名空间声明。
clea r:移除对继承的节和节组的所有引用,只允许由当前secti on 和secti onGro up 元素添加的节和节组。
re move:移除对继承的节和节组的引用。
sec tion:定义配置节处理程序与配置元素之间的关联。
secti onGro up:定义配置节处理程序与配置节之间的关联。
--><c onfig Secti ons><sect ionGr oup n ame="syste m.web.exte nsion s"ty pe="S ystem.Web.Confi gurat ion.S ystem WebEx tensi onsSe ction Group,Sys tem.W eb.Ex tensi ons,Versi on=1.0.61025.0, Cult ure=n eutra l,Pu blicK eyTok en=31bf3856ad364e35"><secti onGro up na me="s cript ing"type="Syst em.We b.Con figur ation.Scri pting Secti onGro up, S ystem.Web.Exten sions,Ver sion=1.0.61025.0, Cu lture=neut ral,Publi cKeyT oken=31bf3856ad364e35"> <s ectio n nam e="sc riptR esour ceHan dler"type="Sys tem.W eb.Co nfigu ratio n.Scr iptin gScri ptRes ource Handl erSec tion,Syst em.We b.Ext ensio ns, V ersio n=1.0.61025.0,Cultu re=ne utral,Pub licKe yToke n=31b f3856ad364e35"requi rePer missi on="f alse"allo wDefi nitio n="Ma chine ToApp licat ion"/></sect ionGr oup></sec tionG roup> <sec tionname="rewr iter"type="Int ellig encia.UrlR ewrit er.Co nfigu ratio n.Rew riter Confi gurat ionSe ction Handl er, I nt ell igenc ia.Ur lRewr iter" /></co nfigS ectio ns><!--ap pSett ings是应用程序设置,可以定义应用程序的全局常量设置等信息--><appS ettin gs><add key="1" v alue="1" /><add k ey="g ao" v alue="weip eng"/></app Setti ngs><!--连接字符串设置--><co nnect ionSt rings> <ad d nam e="Co nnStr ing"conne ction Strin g="Da ta So urce=GAO;I nitia lCat alog=HBWXD ate;U ser I D=sa;passw ord=s a"></add><addname="111" conn ectio nStri ng="11111" /></co nnect ionSt rings><!--指定应用子配置设置的资源,并锁定配置设置,以防止它们被子配置文件重写。
Configuration:指定公共语言运行库和.NET Framework应用程序所使用的每个配置文件中均需要的根元素System.Web:指定配置文件中配置设置的根元素。
并且包含各种元素,这些元素配置在 Web应用程序的行为方式一、Configuration元素1)configSections:指定配置节和命名空间声明子元素:✧allowDefinition:指定可以在哪个配置文件中使用该节。
此特性的值是下列值:⏹Everywhere:允许在任何配置文件或目录中配置该节,如下所示(Machine.config,根Web.config,应用程序的Web.config,虚拟目录,应用程序中的物理子目录)⏹MachineToApplication:允许在下列文件之一中配置该节:(Machine.config,根Web.config,应用程序的Web.config)⏹MachineToWebRoot :允许在下列文件之一中配置该节:(Machine.config,根Web.config)⏹MachineOnly:只允许在Machine.config文件中配置该节✧allowExeDefinition:指定可以再哪个配置文件中使用该节,该特性可以是下列值:⏹MachineToApplication:允许在下列文件之一配置该节(Machine.config,应用程序配置)⏹MachineToRoamingUser⏹MachineToLocalUser⏹MachineOnly:只允许在Machine.config文件中配置该节✧allowLocation:指定是否可以在location元素内使用该节✧name:指定在该节的配置数据发生更改时是否应当重新启动应用程序✧restartOnExternalChanges:指定在该节的配置数据发生更改时是否应当重新启动应用程序✧type:必选特性。
指定用来执行如下操作的配置节处理程序类的名称:处理在name特性中指定的节或元素中的配置设置。
这篇文章主要介绍了 web.config 节点的配置,讲解的非常详细,需要的朋友可以参考下。
web.config 文件查找规则:(1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找。
(2)如果当前页面所在目录下不存在web.config文件或者web.config文件中不存在该结点名,则查找它的上级目录,直到网站的根目录。
(3)如果网站根目录下不存在web.config文件或者web.config文件中不存在该节点名则在%windir%""Framework"v2.0.50727"CONFIG"web.config文件中查找。
(4) 如果在%windir%""Framework"v2.0.50727"CONFIG"web.config文件中不存在相应结点,则在%windir%""Framework"v2.0.50727"CONFIG"machine.config文件中查找。
(5)如果仍然没有找到则返回null。
在应用程序运行过程中,如果web.config文件发生更改就会导致相应的应用程序重新启动,这时存储在服务器内存中的用户会话信息就会丢失(如存储在内存中的Session)。
(一)appSetings配置节点<appSettings>节点主要用来存储应用程序的一些配置信息,比如上传文件的保存路径等<appSettings> <add key="ImageType" value=".jpg;.bmp;.gif;.png;.jpeg"/> <!--允许上传的图片格式类型--></appSettings>----------------------------------------------------string fileType=ConfigurationManager.AppSettings["FileType "];(二)<connectionStrings>节点<connectionStrings> 节点主要用于配置数据库连接的,我们可以<connectionStrings>节点中增加任意个节点来保存数据库连接字符串,将来在代码中通过代码的方式动态获取节点的值来实例化数据库连接对象,这样一旦部署的时候数据库连接信息发生变化我们仅需要更改此处的配置即可,而不必因为数据库连接信息的变化而需要改动程序代码和重新部署<connectionStrings> <add name="AspNetStudyConnectionString1" connectionString="Data Source=(local);Initial Catalog=AspNetStudy;User ID=sa;Password=sa"/></connectionString>------------------------------------------------------string connectionString = ConfigurationManager.ConnectionStrings["AspNetStudyConnectionString1"].ConnectionString;(三)<compilation>节点<compilation>节点配置 使用的所有编译设置。
解决在Web.config或App.config中添加自定义配置的方法详解本篇文章是对在Web.config或App.config中添加自定义配置的方法进行了详细的分析介绍,需要的朋友参考下.Net中的System.Configuration命名空间为我们在web.config或者app.config中自定义配置提供了完美的支持。
最近看到一些项目中还在自定义xml文件做程序的配置,所以忍不住写一篇用系统自定义配置的随笔了。
如果你已经对自定义配置了如指掌,请忽略这篇文章。
言归正传,我们先来看一个最简单的自定义配置<?xml version="1.0" encoding="utf-8" ?><configuration><configSections><section name="simple"type="ConfigExample.Configuration.SimpleSection,ConfigExample"/></configSections><simple maxValue="20" minValue="1"></simple></configuration>在配置文件中使用自定义配置,需要在configSections中添加一个section元素,并制定此section元素对应的类型和名字。
然后再在configuration根节点下面添加此自定义配置,如上例中的simple节点。
simple节点只有两个整形数的属性maxValue和minValue。
要在程序中使用自定义配置我们还需要实现存取这个配置块的类型,一般需要做如下三件事:1. 定义类型从System.Configuration.ConfigurationSection继承2. 定义配置类的属性,这些属性需要用ConfigurationProperty特性修饰,并制定属性在配置节中的名称和其他一些限制信息3. 通过基类的string索引器实现属性的get ,set非常简单和自然,如下是上面配置类的实现:public class SimpleSection:System.Configuration.ConfigurationSection{[ConfigurationProperty("maxValue",IsRequired=false,DefaultValue=Int32.MaxValue)]public int MaxValue{get{return (int)base["maxValue"];}set{base["maxValue"] = value;}}[ConfigurationProperty("minValue",IsRequired=false,DefaultValue=1)]public int MinValue{get { return (int) base["minValue"];}set { base["minValue"] = value; }}[ConfigurationProperty("enabled",IsRequired=false,DefaultValue=true)]public bool Enable{get{return (bool)base["enabled"];}set{base["enabled"] = value;}}}这样子一个简单的配置类就完成了,怎么在程序中使用这个配置呢?需要使用ConfigurationManager类(要引用System.configuration.dll这个dll只有在.Net2.0之后的版本中才有)的GetSection方法获得配置就可以了。
web.config配置说明<configuration>//顶层元素<system.web>//⼤多应⽤程序设置位于此元素下<sessionState mode='Inproc' timeout='10' />//设置会话状态超时时间</system.web></configuration>Table 3-1.可⽤于web.config的顶层配置元素元素Element含义Purpose<authentication>指定所使⽤的客户⾝份验证模式Specify the client authentication mode to use<authorization>允许或者拒绝⽤户或⾓⾊的访问Allow or deny users or roles access<browserCaps>根据⽤户代理指定浏览器的能⼒Specify browser capabilities based on user agent<clientTarget>定义客户⽬标Define client targets<compilation>控制同页编译和程序集引⽤Control page compilation and assembly references<customErrors>控制错误页显⽰和定义⾃定义的错误页Control error page display and define custom error pages<globalization>设置请求和响应的编码Set the request and response encoding<httpHandlers>添加或移除HTTP处理程序Add or remove HTTP handlers<httpModules>添加或移除HTTP模块Add or remove HTTP modules<httpRuntime>控制HTTP请求的处理Control aspects of HTTP request processing<identity>为该应⽤程序指定标识Specify impersonation for this application<machineKey>控制验证和解密的钥匙Control the validation and decryption key<pages>设置全局的⽹页默认属性Set defaults for page attributes globally<processModel>控制⼯作者进程的⾏为⽅式Control the behavior of the worker process<securityPolicy>使⽤相关的策略⽂件定义信任等级Define trust levels with associated policy files<sessionState>控制会话状态Control session state<trace>启⽤应⽤程序范围的跟踪Enable application-wide tracing<trust>选择使⽤的信任等级Select which trust level to use<webServices>指定Web服务的协议和范围Specify Web service protocols and extensions<appSettings>添加应⽤程序专⽤的数据元素Add application-specific data elements1, 配置的四个层次(1)机器:machine.config:位于$FRAMEWORK\CONFIG($FRAMEWORK⼀般是c:\winnt\\Framework\v1.0.3705),是.net必须备的默认配置⽂件。
由于最近一个项目的数据库变动比较频繁, 为了减少数据层的负担, 打算采用.net的MVC 框架, 使用LINQ对付数据层.这个框架的web.config文件里出现了configSections section, 这个之前没有留意, 乘着项目不是很急, 顺势把它给搞懂, 花了一下午时间, 终于搞定, 有点心得, 写下来以供面试官翻阅.为啥要引用configSections?因为用户的一些对象, 可能在config里进行配置, 但是config怎么能随便让你添加自己的节点呢! 不行你自己试试, 在任何位置添加任何没有申明的节点, 系统都不会让你通过, 更不会让你去读它了, 当然, 你打算在别的xml文件里添加节点, 然后读出来, 创建对象, 这个没问题.为了系统能有组织的管理用户的在配置文件里的自定义信息, 就要使用configSections了, 分3步走:1. 创建一个实现IConfigurationSectionHandler的类2. 在config文件里添加如下节点:<configuration><configSections><section name="NameM"type="SectionHandler"/></configSections><NameM><Add key="name1" firstname="Jim" lastname="w1"/><Add key="name2" firstname="Chris" lastname="w2"/> </NameM>说明: 在configSections下添加一个section子节点, 写好标示名和类型, 然后在紧接这下面实现这个标示名的细节内容,就是我们当初想添加的自己的自定义信息了.3. 实现IConfigurationSectionHandler唯一的方法: public object Create(object parent, object configContext, XmlNode section), 这里的最后一个参数就是自定义信息那个节点了, 粗体部分. 通过处理这堆信息, 返回你要的对象.4. 使用这个返回的对象,通过System.Configuration.ConfigurationManager.GetSection()方法.以下是示例代码:(NameSectionHandler.cs)Code(NameManagement.cs)namespace LearningConfiguration{public class NameManagement{string _firstName;public string FirstName{get { return this._firstName; }set { this._firstName = value; }}string _lastName;public string LastName{get { return this._lastName; }set { this._lastName = value; }}public NameManagement(string firstName, string lastName){this.FirstName = firstName;stName = lastName;}public string RetrieveFullName(){return string.Format("{0} {1}", this.FirstName, stName);}}}(Default.aspx.cs)namespace LearningConfiguration{public partial class _Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){Dictionary<string, NameManagement> names = ConfigurationManag er.GetSection("NameM") as Dictionary<string, NameManagement>;if (names != null){foreach(string key in names.Keys){NameManagement name = names[key] as NameManagement; Response.Write(name.RetrieveFullName());}}}}}与以上调用方式一样:Code1.为什么需要自定义节点为了增加应用程序的可移植性,通常网站需要配置一些自定义的节点,例如:文件上传的路径等,再深入的应用,可以定义工厂方法需要创建的类。
web.config详解(配置文件节点说明)Posted on 2009-02-15 20:50 Charles Chen阅读(625) 评论(0)编辑收藏所属分类: Web.config深入浅出, web.config文件是一个XML文件,它的根结点是<configuration>,在<configuration>节点下的常见子节点有:<configSections>、<appSettings>、<connectionStrings>和<system.web>。
其中<appSettings>节点主要用于配置一些网站的应用配置信息,而<connectionStrings>节点主要用于配置网站的数据库连接字符串信息。
<system.web>节点主要是网站运行时的一些配置,它的常见节点有如下:1.<appSettings>节点<appSettings>节点主要用来存储应用程序的一些配置信息2.<compilation>节点<compilation>节点配置 使用的所有编译设置。
默认的debug属性为“true”,即允许调试,在这种情况下会影响网站的性能,所以在程序编译完成交付使用之后应将其设为“false”。
3.<authentication>节点设置身份验证模式,有四种身份验证模式,它们的值分别如下:Mode 说明Windows 使用Windows身份验证,适用于域用户或者局域网用户。
Forms 使用表单验证,依靠网站开发人员进行身份验证。
Passport 使用微软提供的身份验证服务进行身份验证。
None 不进行任何身份验证。
4.<customErrors>节点<customErrors>节点用于定义一些自定义错误信息的信息。
web.config配置⽂件⽰例为了⽅便配置web.config⽂件,我写了⼀个常⽤的web.config⽂件的⽰例,可以以此为模版根据需要修改。
创建web.config⽂件的三种快捷⽅法:1、⽤VS2005中的⽹站配置⼯具配置2、参考C:\WINDOWS\\Framework\v2.0.50727(.net framework版本)\CONFIG\⽬录下的machine.config ⽂件进⾏编写3、以下边这个⽂件作模版修改〈membership>〈providers>〈remove name="NetSqlMembershipProvider" />〈add name="NetSqlMembershipProvider"type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="strConnUserDB"enablePasswordRetrieval="false"enablePasswordReset="true"requiresQuestionAndAnswer="true"applicationName="/"requiresUniqueEmail="false"passwordFormat="Hashed"maxInvalidPasswordAttempts="5"minRequiredPasswordLength="7"minRequiredNonalphanumericCharacters="1"passwordAttemptWindow="10"passwordStrengthRegularExpression=""description="存储membership数据"/>〈/providers>〈/membership>〈profile enabled="true" defaultProvider="NetSqlProfileProvider" inherits="">〈providers>〈remove name="NetSqlProfileProvider" />〈add name="NetSqlProfileProvider"connectionStringName="strConnUserDB"applicationName="/"type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"description="存储Profile数据"/>〈/providers>〈properties>〈add name="Name"/>〈add name="BackColor" type="System.Drawing.Color" allowAnonymous="true" serializeAs="Binary"/>〈/properties>〈/profile>〈roleManager enabled="true" cacheRolesInCookie="true">〈providers>〈remove name="NetSqlRoleProvider" />〈add name="NetSqlRoleProvider"connectionStringName="strConnUserDB"applicationName="/"type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"description="存储Role数据"/>〈/providers>〈/roleManager>〈!-- Other roleManager attributes (and their defaults) include:cookieName=".ASPXROLES"cookieTimeout="30"cookiePath="/"cookieRequireSSL="false"cookieSlidingExpiration="true" // Renew expiring cookies?createPersistentCookie="false" // Issue persistent cookie?cookieProtection="All" /> // Cookie protection level-->〈compilation debug="false" />〈authentication mode="Forms" />〈!--〈anonymousIdentificationenabled="true"cookieName=".ASPXANONYMOUS"cookieTimeout="43200"cookiePath="/"cookieRequireSSL="false"cookieSlidingExpiration="true"cookieProtection="All"cookieless="UseCookies"/>-->〈!--〈customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">〈error statusCode="403" redirect="NoAccess.htm" />〈error statusCode="404" redirect="FileNotFound.htm" />〈/customErrors>-->〈/system.web>〈location path="user">〈system.web>〈authorization>〈allow roles="?" />〈deny users="*"/>〈/authorization>〈/system.web>〈/location>〈/configuration>web.config详细分析讲解【⼀】在部署程序时为了保密起见并不将源代码随项⽬⼀同发布,⽽我们开发时的环境与部署环境可能不⼀致(⽐如数据库不⼀样),如果在代码中保存这些配置这些信息部署时需要到⽤户那⾥更改代码再重新编译,这种部署⽅式⾮常⿇烦。
对Web.config配置⽂件的常见操作-洞⼳⼈⽣-博客园对Web.config配置⽂件的常见操作对于配置⽂件的常见操作包括:l 读取l 修改l 将web.config中的配置节放在单独的⽂件中l 对某⼀节进⾏加密l 添加定制的节操作web配置⽂件(包括machine.config和web.config等)的命名空间是:System.Web.Configuration。
主要应⽤的类是:WebConfigurationManager。
下⾯看看WebConfigurationManager类的成员。
(可以利⽤MSDN来查看,我下⾯是利⽤Lutz Roeder的Reflector)图 1 WebConfigurationManager类成员3.2.1 读取图 2 WebConfigurationManager类中⽤于读取的属性和⽅法3.2.1.1 读取appSettings节和connectionStrings节在WebConfigurationManager类中,我们⾸先注意到其两个属性AppSettings和ConnectionStrings。
这两个属性就是⽤于操作我们前⾯看到的web.config⽂件中的两节appSettings和connectionStrings。
下⾯演⽰使⽤⽅法。
演⽰操作appSettings 节的代码:using System.Web.Configuration;....string message;message = WebConfigurationManager.AppSettings["message"];...演⽰操作connectionStrings节的代码:using System.Web.Configuration;....string connectionString =WebConfigurationManager.ConnectionStrings["pubs"].ConnectionString;...3.2.1.2 读取其它节在.NET中读取其它节要⿇烦⼀些。
花了点时间整理了一下 Web.config配置文件的基本使用方法。
很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点。
所以这里只介绍一些比较常用的节点。
<?xml version="1.0"?><!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置。
可以使用 Visual Studio 中的“网站”->“ 配置”选项。
设置和注释的完整列表在 ments 中,该文件通常位于"Windows""Framework"v2.x"Config 中。
--><!--Webconfig文件是一个xml文件,configuration是xml文件的根节点,由于xml文件的根节点只能有一个,所以Webconfig的所有配置都是在这个节点内进行的。
--><configuration><!--指定配置节和命名空间声明。
clear:移除对继承的节和节组的所有引用,只允许由当前 section 和 sectionGroup 元素添加的节和节组。
remove:移除对继承的节和节组的引用。
section:定义配置节处理程序与配置元素之间的关联。
sectionGroup:定义配置节处理程序与配置节之间的关联。
--><configSections><sectionGroup name="system.web.extensions"type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"><sectionGroup name="scripting"type="System.Web.Configuration.ScriptingSectionGroup,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"><section name="scriptResourceHandler"type="System.Web.Configuration.ScriptingScriptResourceHandlerS ection, System.Web.Extensions, Version=1.0.61025.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"allowDefinition="MachineToApplication"/></sectionGroup></sectionGroup><section name="rewriter"type="Intelligencia.UrlRewriter.Configuration.RewriterConfigur ationSectionHandler, Intelligencia.UrlRewriter"/></configSections><!--appSettings是应用程序设置,可以定义应用程序的全局常量设置等信息--><appSettings><add key="1"value="1"/><add key="gao"value="weipeng"/></appSettings><!--连接字符串设置--><connectionStrings><add name="ConnString"connectionString="DataSource=GAO;Initial Catalog=HBWXDate;UserID=sa;password=sa"></add><add name="111"connectionString="11111"/></connectionStrings><!--指定应用子配置设置的资源,并锁定配置设置,以防止它们被子配置文件重写。
Web.config配置详解一、认识Web.config文件Web.config 文件是一个XML文本文件,它用来储存 Web 应用程序的配置信息(如最常用的设置 Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。
当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。
如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。
它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。
(一).Web.Config是以XML文件规范存储,配置文件分为以下格式1.配置节处理程序声明特点:位于配置文件的顶部,包含在<configSections> 标志中。
2.特定应用程序配置特点: 位于<appSetting> 中。
可以定义应用程序的全局常量设置等信息.3.配置节设置特点: 位于<system.Web> 节中,控制运行时的行为.4.配置节组特点: 用<sectionGroup> 标记,可以自定义分组,可以放到<configSections> 内部或其它<se ctionGroup> 标记的内部.(二).配置节的每一节1. <configuration> 节根元素,其它节都是在它的内部.2. <appSetting> 节此节用于定义应用程序设置项。
对一些不确定设置,还可以让用户根据自己实际情况自己设置用法:I.<appSettings><add key= "Conntction " value= "server=192.168.85.66;userid=sa;password=;database=Info; "/><appSettings>定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码.II. <appSettings><add key= "ErrPage " value= "Error.aspx "/><appSettings>定义了一个错误重定向页面.3. <compilation> 节格式:<compilationdefaultLanguage= "c# "debug= "true "/>I.default language: 定义后台代码语言,可以选择C#和两种语言.IIdebug : 为true时,启动aspx调试;为false不启动aspx调试,因而可以提高应用程序运行时的性能。
在web.config中配置自定义节点配置文件的层次结构:<?xml version="1.0"encoding="utf-8"?><configuration><configSections><section name="buildingCollection"type="命名空间.BuildingSection"/></configSections><buildingCollection><buildingElement uniqueid="001"description="一号语音楼"floornum="6"></buildingElement><buildingElement uniqueid="002"description="二号行软楼"floornum="4"></buildingElement><buildingElement uniqueid="003"description="三号通信楼"floornum="2"></buildingElement></buildingCollection><appSettings><!--系统管理员角色名--><add key="AdminRoleName"value="系统管理员"/></appSettings><connectionStrings><add name="ConnectionString"connectionString="User ID=sa;Initial Catalog=databaseName;Data Source=databaseIP;Password=databasePassword"/></connectionStrings></configuration>对<configSections>的自定义配置节点类:using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;namespace mon{public class BuildingConfigHelper{public BuildingConfigHelper(){}}public class BuildingSection : ConfigurationSection{[ConfigurationProperty("", IsDefaultCollection = true)]public BuildingElementCollection BuildingCollection{get{return (BuildingElementCollection)base[""];}}}public class BuildingElementCollection : ConfigurationElementCollection {protected override ConfigurationElement CreateNewElement(){return new BuildingElement();}protected override object GetElementKey(ConfigurationElement element) {BuildingElement buildingElement = element as BuildingElement;return buildingElement.UniqueID;}public override ConfigurationElementCollectionType CollectionType{get{ return ConfigurationElementCollectionType.BasicMap; }}protected override string ElementName{get{ return"buildingElement"; }}}public class BuildingElement : ConfigurationElement{[ConfigurationProperty("uniqueid", IsRequired = true)]public string UniqueID{get { return (string)base["uniqueid"];}set { base["uniqueid"] = value; }}[ConfigurationProperty("description", IsRequired = true)]public string Description{get{ return (string)base["description"];}set{ base["description"] = value; }}[ConfigurationProperty("floornum", IsRequired = true)]public string FloorNum{get{ return (string)base["floornum"];}set{ base["floornum"] = value; }}}}自定义配置节点:///<summary>///楼号的数据绑定///</summary>private void DataBindBuilding(){BuildingSection buildingSection = ConfigurationManager.GetSection("buildingCollection") as BuildingSection;foreach (BuildingElement Building in buildingSection.BuildingCollection){string id = Building.UniqueID;string text = Building.Description;}this.ddlBuilding.Items.Clear();this.ddlBuilding.DataSource = buildingSection.BuildingCollection;this.ddlBuilding.DataTextField = "Description";this.ddlBuilding.DataValueField = "UniqueID";this.ddlBuilding.DataBind();this.ddlBuilding.SelectedIndex = 0;}///<summary>///楼层的数据绑定///</summary>///<param name="buildingid"></param>private void DataBindFloor(string buildingid){this.ddlFloor.Items.Clear();BuildingSection buildingSection = ConfigurationManager.GetSection("buildingCollection") as BuildingSection;foreach (BuildingElement Building in buildingSection.BuildingCollection){if( Building.UniqueID.Equals(buildingid)){AppBox.WebControls.ListItem item;int num = Int32.Parse(Building.FloorNum);for (int i = 0; i < num; i++){item = new AppBox.WebControls.ListItem((i + 1).ToString() + "层楼", (i + 1).ToString());this.ddlFloor.Items.Add(item);}this.ddlFloor.SelectedIndex = 0;}}}。