web.config 文件查找规则:
       (1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找。
       (2)如果当前页面所在目录下不存在web.config文件或者web.config文件中不存在该结点名,则查找它的上级目录,直到网站的根目录。
       (3)如果网站根目录下不存在web.config文件或者web.config文件中不存在该节点名则在%windir%"Microsoft.NET"Framework"v2.0.50727"CONFIG"web.config文件中查找。
       (4) 如果在%windir%"Microsoft.NET"Framework"v2.0.50727"CONFIG"web.config文件中不存在相应 结点,则在%windir%"Microsoft.NET"Framework"v2.0.50727"CONFIG"machine.config文件 中查找。
       (5)如果仍然没有找到则返回null。
       在asp.net应用程序运行过程中,如果web.config文件发生更改就会导致相应的应用程序重新启动,这时存储在服务器内存中的用户会话信息 就会丢失(如存储在内存中的Session)。

(一) appSetings配置节
       <appSettings>节点主要用来存储asp.net应用程序的一些配置信息,比如上传文件的保存路径等
       <appSettings>
             <add key="ImageType" value=".jpg;.bmp;.gif;.png;.jpeg"/> <!--允许上传的图片格式类型--> 
       </appSettings>
       string fileType=ConfigurationManager.AppSettings["FileType "];

(二) <connectionStrings>节点
       <connectionStrings> 节点主要用于配置数据库连接的,我们可以<connectionStrings>节点中增加任意个节点来保存数据库连接字符串,将来在代码中通过代码的方式动态获取节中的值来实例化数据库连接对象,这样一旦部署的时候数据库连接信息发生变化我们仅需要更改此处的配置即可,而不必因为数据库连接 信息的变化而需要改动程序代码和重新部署
       <connectionStrings> 
             <add name="AspNetStudyConnectionString1" connectionString="DataSource=(local);Initial Catalog=AspNetStudy;User ID=sa;Password=sa"/>
       </connectionString>
      读取连接字符串:string connectionString = ConfigurationManager.ConnectionStrings["AspNetStudyConnectionString1"].ConnectionString;

(三)<compilation>节点
       <compilation>节点配置 ASP.NET 使用的所有编译设置。默认的debug属性为“true”,即允许调试,在这种情况下会影响网站的性能,所以在程序编译完成交付使用之后应将其设为“false”。

(四)<authentication>节点

设置asp.net身份验证模式,有四种身份验证模式,它们的值分别如下:
      Windows 使用Windows身份验证,适用于域用户或者局域网用户。
      Forms 使用表单验证,依靠网站开发人员进行身份验证。
      Passport 使用微软提供的身份验证服务进行身份验证。
      None 不进行任何身份验证。

(五)<customErrors>节点
       <customErrors>节点用于定义 一些自定义错误信息的信息。此节点有Mode和defaultRedirect两个属性,其中defaultRedirect属性是一个可选属性,表示应 用程序发生错误时重定向到的默认URL,如果没有指定该属性则显示一般性错误。Mode属性是一个必选属性,它有三个可能值,它们所代表的意义分别如下:
       On 表示在本地和远程用户都会看到自定义错误信息。
       Off 禁用自定义错误信息,本地和远程用户都会看到详细的错误信息。
       RemoteOnly 表示本地用户将看到详细错误信息,而远程用户将会看到自定义错误信息。
这 里有必要说明一下本地用户和远程用户的概念。当我们访问asp.net应用程时所使用的机器和发布asp.net应用程序所使用的机器为同一台机器时成为 本地用户,反之则称之为远程用户。在开发调试阶段为了便于查找错误Mode属性建议设置为Off,而在部署阶段应将Mode属性设置为On或者 RemoteOnly,以避免这些详细的错误信息暴露了程序代码细节从而引来黑客的入侵。

(六)<error>子节点
       在<customErrors>节点下还包含有< error>子节点,这个节点主要是根据服务器的HTTP错误状态代码而重定向到我们自定义的错误页面,注意要使<error>子节点 下的配置生效,必须将<customErrors>节点节点的Mode属性设置为“On”。下面是一个例子: 
             <customErrors mode="On" defaultRedirect="GenericErrorPage.htm"> 
                   <error statusCode="403" redirect="403.htm" />
                   <error statusCode="404" redirect="404.htm" />
             </customErrors>

(七)<httpHandlers>节点
       <httpHandlers>节点用于根据用户请求的URL和HTTP谓词将用户的请求交给相应的处理程序。可以在配置级别的任何层次配置此节点,也就是说可以针对某个特定目录下指定的特殊文件进行特殊处理。
       <httpHandlers>
             <add path="*.rules" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.xoml" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089" validate="false"/>
             <add path="trace.axd" verb="*" type="System.Web.Handlers.TraceHandler" validate="true"/>
             <add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="true"/>
             <add path="*.axd" verb="*" type="System.Web.HttpNotFoundHandler" validate="true"/>
             <add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="true"/>
             <add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="true"/>
             <add path="*.asmx" verb="*" type="System.Web.Services.Protocols.WebServiceHandlerFactory,System.Web.Services, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
             <add path="*.rem" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089" validate="false"/>
             <add path="*.soap" verb="*"type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089" validate="false"/>
             <add path="*.asax" verb="*" type="System.Web.HttpForbiddenHandler"validate="true"/>
             <add path="*.ascx" verb="*" type="System.Web.HttpForbiddenHandler"validate="true"/>
             <add path="*.master" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.skin" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.browser" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.sitemap" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.dll.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="true"/>
             <add path="*.exe.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="true"/>
             <add path="*.config" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.cs" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.csproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.vb" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.vbproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.webinfo" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/> 
             <add path="*.licx" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.resx" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/> 
             <add path="*.resources" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.mdb" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.vjsproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.java" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.jsl" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.ldb" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.ad" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.dd" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.ldd" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.sd" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.cd" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.adprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.lddprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.sdm" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.sdmDocument" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.mdf" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/> 
             <add path="*.ldf" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.exclude" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/> 
             <add path="*.refresh" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
             <add path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089" validate="false"/>
             <add path="*" verb="GET,HEAD,POST"type="System.Web.DefaultHttpHandler" validate="true"/>
             <add path="*" verb="*" type="System.Web.HttpMethodNotAllowedHandler" validate="true"/>
       </httpHandlers>

从上面的配置中可以看出,针对*.mdf、*.ldf文件的Get或者Post请求都会交给System.Web.HttpForbiddenHandler来处理,处理的结果就是用户不能查看或者下载相关的文件。如果我们某个文件夹下的文件或 者某个类型的文件不允许用户下载,可以在</httpHandlers>节点中增加相应的子节点。
       下面我们以一个例子来说明<httpHandlers>节点的用法,在我们的asp.net应用程序中建立一个IPData目录,在IPData目录中创建一个IPData.txt文件,然后在Web.config中添加以下配置:
             <httpHandlers>
                   <add path="IPData/*.txt" verb="*"type="System.Web.HttpForbiddenHandler"/>
             </httpHandlers>

(九)<httpRuntime>节点
       <httpRuntime>节点用于对 ASP.NET HTTP 运行库设置。该节可以在计算机、站点、应用程序和子目录级别声明。例如下面的配置控制用户最大能上传的文件为40M(40*1024K),最大超时时间为60秒,最大并发请求为100个
       <httpRuntime maxRequestLength="40960" executionTimeout="60"appRequestQueueLimit="100"/>

(十)<pages>节点
       <pages>节点用于表示对特定页设置,主要有三个属性,分别如下:
       buffer 是否启用了 HTTP 响应缓冲。
       enableViewStateMac 是否应该对页的视图状态运行计算机身份验证检查 (MAC),以放置用户篡改,默认为false,如果设置为true将会引起性能的降低。
       validateRequest 是否验证用户输入中有跨站点脚本攻击和SQL注入式漏洞攻击,默认为true,如果出现匹配情况就会发HttpRequestValidationException 异常。对于包含有在线文本编辑器页面一般自行验证用户输入而将此属性设为false。
       <pages buffer="true" enableViewStateMac="true" validateRequest="false"/>

(十一)<sessionState>节点
       <sessionState>节点用于配置当前asp.net应用程序的会话状态配置。以下就是一个常见配置:
             <sessionState cookieless="false" mode="InProc" timeout="30" />
       上面的节点配置是设置在asp.net应用程序中启用Cookie,并且指定会话状态模式为在进程中保存会话状态,同时还指定了会话超时为30分钟。
       <sessionState>节点的Mode属性可以是以下几种值之一:
       Custom 使用自定义数据来存储会话状态数据。
       InProc 默认值。由asp.net辅助进程来存储会话状态数据。
       Off 禁用会话状态。
       SQLServer 使用进程外SQL Server数据库保存会话状态数据。
       StateServer 使用进程外 ASP.NET 状态服务存储状态信息。
       一般默认情况下使用InProc模式来存储会话状态数据,这种模式的好处是存取速度快,缺点是比较占用内存,所以不宜在这种模式下存储大型的用户会话数据

(十二)<globalization>节点
       用于配置应用程序的全球化设置。此节点有几个比较重要的属性,分别如下:
       fileEncoding 可选属性。设置.aspx、.asmx 和 .asax 文件的存储编码。
       requestEncoding 可选属性。设置客户端请求的编码,默认为UTF-8.
       responseEncoding 可选属性。设置服务器端响应的编码,默认为UTF-8.
       以下就是asp.net应用程序中的默认配置:
             <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8"/>
(十三)web.config文件读写
public void SetAppSetting(string key, string value)
{
       AppSettingsSection appSetting = (AppSettingsSection)config.GetSection("appSettings");
       if (appSetting.Settings[key] == null)//如果不存在此节点,则添加
       {
             appSetting.Settings.Add(key, value);
        }
       else//如果存在此节点,则修改
        {
              appSetting.Settings[key].Value = value;
       }
}

转载于:https://www.cnblogs.com/kelvin0916/archive/2012/09/15/2685889.html

asp.net中web.config配置节点大全详解相关推荐

  1. Asp.Net web.config配置节点大全详解

    web.config 文件查找规则: (1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结 点名称,如果存在返回结果并停止查找. (2)如果当前页面所在目录下不存在we ...

  2. IIS7 伪静态 web.config 配置方法【详解】

    IIS7 做伪静态比较的简单方便 1.程序方面 只需要设置web.config 就可以了. 2.服务器需要安装:URL Rewrite 下载地址:http://www.iis.net/download ...

  3. MYSQL数据库连接字符串(connectionString)配置参数大全详解

    请参考原文:MYSQL数据库连接字符串(connectionString)配置参数大全详解

  4. Asp.net中web.config配置文件详解

    转载地址:http://blog.csdn.net/hbqhdlc/article/details/8164521 web.config是一个XML文件,用来储存Asp.NET Web应用程序的配置信 ...

  5. asp.net中web.config巧妙使用appSetting和connectionStrings

    connectionStrings: 一般情况下connectionStrings都是数据库连接字符串的首选,因为它有存放数据库的优势 1.可以加密(传送门). 2.切换数据库平台方便,如换为Orac ...

  6. k8s中kubeconfig的配置以及使用详解

    概述 kubeconfig 文件保存了 k8s 集群的集群.用户.命名空间.认证的信息.kubectl 命令使用 kubeconfig 文件来获取集群的信息,然后和API server进行通讯. 注意 ...

  7. 在Jackson中使用树模型节点(JsonNode)详解

    1. Overview 本文将重点介绍如何在Jackson中使用树模型节点. 我们将使用JsonNode进行各种转换以及添加.修改和删除节点. 2. 创建一个节点 创建节点的第一步是使用默认构造函数实 ...

  8. asp.net数据库连接web.config配置

    本文来自 博客园 mile ,转载请详细标明作者及出处,以示尊重! 作者:mile 原文:http://www.cnblogs.com/lhws/archive/2012/03/15/2397937. ...

  9. python中config方法作用_使用Python中的config配置

    Python中有ConfigParser类,可以很方便的从配置文件中读取数据(如DB的配置,路径的配置),所以可以自己写一个函数,实现读取config配置. config文件的写法比较简单,[sect ...

最新文章

  1. 计算机窗口还原,win8系统找回计算机窗口“回收站”的还原办法
  2. 核磁共振影像数据处理-2-DWI实践:计算ADC (MD) map、Li‘s have a solution and plan.
  3. 2011年1月和2月blog汇总:Orchard、敏捷个人、英语
  4. Apache无法启动解决 the requested operation has failed
  5. 【论文】引用格式 NoteExpress管理文献
  6. Kafka集群安装--测试--关闭
  7. 坦克游戏服务器未响应,《坦克世界》退出战斗 退出战斗卡死解决办法
  8. 环境搭建、标注、训练、推断,超详细的目标检测开发流程
  9. css js 代码怎么隐藏,如何仅使用js代码(和css)隐藏元素?
  10. CSDN - markdown 编辑器模板
  11. 全球首款iOS模拟器出炉!在违法的边缘疯狂试探
  12. java jnlp被阻止_JNLP 被java安全阻止
  13. 2万字 + 50 张图,细说 JVM 内存分布、内存对齐、压缩指针
  14. 去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目技术对比(上)
  15. java生成树形Excel_poi从excel中读取父子关系型(树形)数据结构到数据库
  16. 苹果手机2019年什么时候出新款_[创立24周年]焕新,不换我初心 因强大而简单.智者,驭时而进 - 手机数码电玩维修...
  17. 风控每日一问:互联网金融产品如何利用大数据做风控?
  18. redis命令之string类型incr/decr命令用法详情
  19. 大象装企营销:16个月,血亏300万,投资人撤资,公司倒闭
  20. hyper-v虚拟机的基本使用

热门文章

  1. c语言le后能跟变量吗,【C语言】C语言常量和变量
  2. linux多用户怎么表示,Linux如何建立多用户
  3. fragment中文网_更新 · React Native 中文网
  4. Mask Rcnn训练自己的航拍数据集
  5. Linux那些事儿之我是Sysfs(5)举例二sculld
  6. 【MediaPipe】(3) AI视觉,人脸识别,附python完整代码
  7. php把excel变成数组,PHP excel读取excel文件转换为数组
  8. 理解OpenGL中帧缓存FrameBuffer 渲染缓存RenderingBuffer
  9. 协方差及PCA降维计算
  10. 【亲测可用→防止入坑Routes】设置angular10项目异步加载、惰性加载、懒加载路由