web.config配置详细说明

摘要:
(一).Web.Config是以XML文件规范存储,配置文件分为以下格式1.配置节处理程序声明特点:位于配置文件的顶部,包含在标志中。可以定义应用程序的全局常量设置等信息.3.配置节设置特点:位于节中,控制Asp.net运行时的行为.4.配置节组特点:用标记,可以自定义分组,可以放到内部或其它标记的内部.(二).配置节的每一节1.节根元素,其它节都是在它的内部.2.节此节用于定义应用程序设置项。

(一).Web.Config是以XML文件规范存储,配置文件分为以下格式

1.配置节处理程序声明
特点: 位于配置文件的顶部,包含在<configSections>标志中。
2.特定应用程序配置
特点: 位于<appSetting>中。 可以定义应用程序的全局常量设置等信息.
3.配置节设置
特点: 位于<system.Web>节中,控制Asp.net运行时的行为.
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>节
格式:
<compilation defaultLanguage="c#" debug="true" />
I.
default language: 定义后台代码语言,可以选择C#和VB.net两种语言.
II.
debug : 为true时,启动aspx调试; 为false不启动aspx调试,因而可以提高应用程序运行时的性能。 一般程序员在开发时设置为true,交给客户时设置为false.
4.<customErrors>节
格式:
<customErrors mode="RemoteOnly" defaultRedirect="error.aspx"
<error statusCode="440" redirect="err440page.aspx"/>
<error statusCode="500" redirect="err500Page.aspx"/>
/>
I.
mode : 具有On,Off,RemoteOnly 3种状态。On表示始终显示自定义的信息; Off表示始终显示详细的asp.net错误信息; RemoteOnly表示只对不在本地Web服务器上运行的用户显示自定义信息.
II.
defaultRedirect: 用于出现错误时重定向的URL地址. 是可选的
III.
statusCode: 指明错误状态码,表明一种特定的出错状态.
IV.
redirect:错误重定向的URL.
5.<globalization>节
格式:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8" />
I.
requestEncoding: 它用来检查每一个发来请求的编码.
II.
responseEncoding: 用于检查发回的响应内容编码.
III.
fileEncoding: 用于检查aspx,asax等文件解析的默认编码.
6.<sessionState>节
格式:
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />
I.
mode: 分为off,Inproc,StateServer,SqlServer几种状态
II.
stateConnectionString :指定Asp.net应用程序存储远程会话状态的服务器名,默认为本机
III.
sqlConnectionString: 当用会话状态数据库时,在这里设置连接字符串
IV.
Cookieless: 设置为true时,表示不使用cookie会话状态来标识客户; 否则,相反.
V.
TimeOut: 用来定义会话状态存储的时间,超过期限,将自动终止会话.
7.<authentication>节
格式:
<authentication mode="Forms">
<forms name=".ASPXUSERDEMO" loginUrl="Login.aspx" protection="All" timeout="30"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
I.
Windows: 使用IIS验证方式
II.
Forms: 使用基于窗体的验证方式
III.
Passport: 采用Passport cookie验证模式
IV.
None: 不采用任何验证方式
里面内嵌Forms节点的属性涵义:
I.
Name: 指定完成身份验证的Http cookie的名称.
II.
LoginUrl: 如果未通过验证或超时后重定向的页面URL,一般为登录页面,让用户重新登录
III.
Protection: 指定 cookie数据的保护方式.
可设置为: All None Encryption Validation四种保护方式
a. All表示加密数据,并进行有效性验证两种方式
b. None表示不保护Cookie.
c. Encryption表示对Cookie内容进行加密
d. validation表示对Cookie内容进行有效性验证
IV.
TimeOut: 指定Cookie的失效时间. 超时后要重新登录.

从文件名就可以看出是做配置用的,比如配置自定义错误页面,debug,等等
存放连接字符串是最基本的用法,
高级一点可以配置httpmodule,httphandler...
再高级一点可以写一个继承自IConfigurationSectionHandler,添加自定义的配置节...
功能是很强大的
ASP.NET提供了一个丰富而可行的配置系统,以帮助管理人员轻松快速的建立自己的WEB应用环境。 ASP.NET提供的是一个层次配置架构,可以帮助WEB应用、站点、机器分别配置自己的扩展配置数据。 ASP.NET的配置系统具有以下优点:
●ASP.NET允许配置内容可以和静态内容、动态页面和商业对象放置在同一应用的目录结构下。当管理人员需要安装新的ASP.NET应用时,只需要将应用目录拷贝到新的机器上即可。
●ASP.NET的配置内容以纯文本方式保存,可以以任意标准的文本编辑器、XML解析器和脚本语言解释、修改配置内容。
●ASP.NET 提供了扩展配置内容的架构,以支持第三方开发者配置自己的内容。
●ASP.NET配置文件的更修被系统自动监控,无须管理人员手工干预。
4.2.2配置文件的规则
ASP.NET的配置文件是基于XML格式的纯文本文件,存在于应用的各个目录下,统一命名为“config.web”。它决定了所在目录及其子目录的配置信息,并且子目录下的配置信息覆盖其父目录的配置。
WINNT/Microsoft.NET/Framework/版本号/下的config.web为整个机器的根配置文件,它定义了整个环境下的缺省配置。
缺省情况下,浏览器是不能够直接访问目录下的config.web文件。
在运行状态下,ASP.NET会根据远程URL请求,把访问路径下的各个config.web配置文件叠加,产生一个唯一的配置集合。举例来说,一个对URL: http://localhost/webapp/owndir/test.aspx的访问,ASP.NET会根据以下顺序来决定最终的配置情况:
1../Microsoft.NET/Framework/v.1.00/config.web (缺省配置文件)
2../webapp/config.web (应用的配置)
3../webapp/owndir/config.web (自己的配置)
4.2.3配置文件的语法规则
(1)标识
配置内容被置于config.web文件中的标记<configuration>和</configuration>之间。
格式:
<configuration>
配置内容…
</configuration>

(2)配置段句柄说明
ASP.NET的配置文件架构并未指定任何文件格式或者是支持的配置属性。相反的,它提出了“配置段句柄申明”的概念来支持任意的用户定义配置段。
格式:
<configsections>
<add name=欲定义配置段名 type=处理的句柄函数 />
</configsections>
(3)配置段
具体定义配置的内容,供应用使用。

以下例子定义了一个“httpmodules”配置段,设置了系统http相关的处理模块
<configuration>
<configsections>
<add name="httpmodules" type="System.Web.Configuration.HttpModules ConfigurationHandler" />
</configsections>
<httpmodules>
<add type="System.Web.SessionState.CookielessSessionModule" />
<add type="System.Web.Caching.OutputCacheModule" />
<add type="System.Web.SessionState.SessionStateModule" />
<add type="System.Web.Security.WindowsAuthenticationModule" />
<add type="System.Web.Security.CookieAuthenticationModule" />
<add type="System.Web.Security.PassportAuthenticationModule" />
<add type="System.Web.Security.CustomAuthenticationModule" />
<add type="System.Web.Security.UrlAuthorizationModule" />
<add type="System.Web.Security.FileAuthorizationModule" />
</httpmodules>
</configuration>
4.2. 4 ASP.NET定义的标准配置段
(1)httpmodule 段: 定义了应用的http请求的处理模块以及诸如安全、日志之类的应用方式
(2)httphandlers 段: 负责映射URLs到IhttpHandler类
(3)sessionstat 段: 负责配置http模块的会话状态
(4)globalization 段: 配置应用的公用设置
(5)compilation 段: 配置ASP.NET的编译环境
(6)trace    段: 配置ASP.NET的跟踪服务
(7)security 段: ASP.NET的安全配置
(8)iisprocessmodel 段: 在IIS上配置ASP.NET的处理模式
(9)browercaps 段: 配置浏览器的兼容部件
4.2. 5 一个配置读出的例子
(1)config.web配置文件
<!--config.web 请放入FormCfg.aspx所在目录-->
<configuration>
<!--申明一个test配置段-->
<configsections>
<add name="test" type="System.Web.Configuration.DictionarySectionHandler" />
</configsections>
<test>
<!--配置一个键key,其内容为just a configure test-->
<add key="key" value="just a configure test" />
</test>
</configuration>
(2)读出其内容
<!--文件名:Application/FormCfg.aspx-->
<html>
<head>
<script language="VB" runat=server>
sub page_load(s as object ,e as eventargs)
'取出test配置段的key键的值
Dim CfgSection As Hashtable = Context.GetConfig("test")
Dim Msg As String = CStr(CfgSection("key"))
lblMsg.text=Msg
end sub
</script>
<title>配置信息的读取</title>
</head>
<body>
<center>
config.web中"test"配置段中key的内容为: <asp:label id=lblmsg runat=server />
</center>
</body>
</html>
(3)运行结果
4.2. 6 Config.web配置实例
<configuration>
<!--定义用户应用的公用设置,如SQL的sql连接串等等-->
<appsettings></appsettings>
<!--设置浏览器的兼容性部件-->
<browsercaps></browsercaps>
<!--编译环境设置,非调试模式-->
<compilation debugmode="false">
<!--缺省编译语言为vb,以后可以不再在Page中定义脚本语言-->
<compilers defaultlanguage="vb">
<!--以MSVSA.dll编译.vb为后缀的VB文件-->
<compiler language="VB" extension=".vb" type="MSVSA.dll#Microsoft.VB.Compiler"/></compilers>
<assemblies>
<!--加入对System.Data的引用-->
<add assembly="System.Data" />
<!--去掉对System.Data的引用-->
<remove assembly="System.IO" />
<!--去掉config.web中包含或继承来的引用-->
<clear />
</assemblies>
</compilation>

<!--设置应用全局环境-->
<!--文件、请求、返回以gb2312编码,以保证浏览器正确显示中文-->
<globalization fileencoding="gb2312" requestencoding="gb2312" responseencoding="gb2312"/>
<!--定义用户出错的处理-->
<!--出错缺省显示defaultredirect指定的页面,mode为on时,遵循customerrors配置段-->
<!--mode为off时,忽略用户出错,mode为remoteonly时,本地才显示真正的出错原因-->
<customerrors defaultredirect="AnErrorHasOccured.aspx?ErrNum=-1" mode="remote">
<!--当出错码为500时,显示redirect指定的页面-->
<error statuscode="500" redirect="AnErrorHasOccured.aspx?ErrNum=500"/>
</customerrors>
<!--指定目录webapp的访问权限-->
<location path="webapp” >
<!--非授权用户不能进入webapp目录-->
<security>
<authorization>
<deny users="?" />
</authorization>
</security>
</location>

<!--定义安全属性-->
<security>
<authorization>
<!--角色为Adminstrators和所有的用户访问其指定的资源-->
<allow roles="Adminstrators"/>
<allow users="*" />
</authorization>
</security>
</configuration>

免责声明:文章转载自《web.config配置详细说明》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#获取资源中的图片文件阿里云 OSS文件存储挂到云服务器ESC文件系统中下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微信内 H5 页面自定义分享

起源: 最近公司在做一个活动的h5页面,在微信内打开时需要进行微信授权,然后后端会重定向到这个页面并且携带了一些参数(openid等)。问题是点击微信的原生分享时,会把携带的这些参数一起分享出去,等于把用户信息泄露了。所以为了解决这个问题,只能实现自定义微信分享的功能,可以自定义分享的地址、标题、图标还有简介。 事先需要做的: 1.微信公众号:必须是经过...

PIC 里面关于 __CONFIG( ) 配置位

一.配置字PIC单片机的配置字可以用__CONFIG命令来定义:#i nclude__CONFIG(x) ;其中x是配置字,头文件中定义了相应的配置说明符。 如:__CONFIG(WDTDIS & XT & UNPROTECT);这将关闭看门狗,设置XT振方式,程序不加密。注意:不同的配置符间用'&'相联,未定义的部分保留未编程状态...

jenkins基于Ansible自动发布/回滚/管理

看着似乎用jenkins基于ansible发布spring boot/cloud类的jar包程序,或者tomcat下的war包的需求挺多的,闲来无事,也说说自己做过的jenkins基于ansible的发布方法。 规范与标准 无规矩不成方圆,要做好后期的自动化,标准化是少不了的,下面是我们这边规划的一些标准(非强制,根据自己实际情况调整) 应用名称:{应用...

Uncaught (in promise) Error: Network Error at createError(axios跨域问题)

axios请求到了数据但then返回不到数据,这是由于vue前端访问地址出现的跨域问题。 1、如果你是自己写的后端,可以添加配置类来避免跨域问题(建议使用) packagecom.ftest.springboot.config; importorg.springframework.context.annotation.Configuration; im...

推荐几种加快火狐浏览器速度的办法

1 、启用流水线技术   浏览器通常都是发送请求到服务器,然后等待,直到服务器回应,而流水线技术 则允许用户在服务器响应之前输入多个请求,这样就减少了页面载入时间。    在地址栏中输入“about:config”,进入配置页面,双击“network.http.pipelining”、 “network.http.proxy.pipelining”,将其值...

jweixin-1.1.0.js微信接口“分享给朋友”文字和图片配置

在npm官网找到了:微信官方 js-sdk CommonJS 版https://www.npmjs.com/package/weixin-js-sdk 步骤一:引入JS文件在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js备注:支持使用 AMD/CMD 标...