.net中webconfig 详解

 更新时间:2021年9月22日 10:10  点击:2272

.net 提供的是针对当前机器的配置。---名称:machine.config

运行机制:asp.net网站IIS启动的时候会加载配置文件中的配置信息,然后缓存这些信息,这样就不必每次去读取配置信息。在运行过程中asp.net应用程序会监视配置文件的变化情况,一旦编辑了这些配置信息,就会重新读取这些配置信息并缓存。

配置文件节点:
  必须明白: web.config文件是一个XML文件
  所隶属根节点的名称:

复制代码 代码如下:

  <configuration>
         子节点:<configSections></configSections>
             <appSettings> </appSettings>
            <connectionStrings></connectionStrings>
            <system.web></system.web>
       特殊: <system.webServer></system.webServer>-----用于指定适用于 Web 应用程序的 IIS 7.0 设置,只适用于 IIS 7.0 集成模式 不适用于经典模式,如果应用程序正在经典模式下运行,则会忽略 Web.config 文件的
  <configuration>

  节点分析:
1.<connectionStrings>节点

  主要用于配置数据库连接,可以在<connectionStrings>节点中增加任意个节点来保存数据库连接字符串然后通过代码的方式动态获取节点的值来实例化数据库连接对象。
例如:

复制代码 代码如下:

    <connectionStrings>
        <!--SQL Server数据库配置-->   <add name="你所要取的名字(任意的)"  connectionString=" Date Source=数据库登陆名 ; Initial Catalog=数据库名称; User ID=登录人    Password=登录人密码 "/>是可以配置多个数据库的连接的
        <add name="AspNetStudyConnectionString1" connectionString="Data Source=(local);Initial Catalog=AspNetStudy;User ID=sa;Password=sa"/>
        <add name="ConnectionString" connectionString="Data Source=10.0.0.52;Initial Catalog=NEW_HOSPITAL_DEV;User ID=hospital;pwd=hospital;"/>
    </connectionStrings>

在代码中药读取数据库连接对象的做法:

复制代码 代码如下:

    //读取web.config节点配置
    string connectionString = ConfigurationManager.ConnectionStrings["AspNetStudyConnectionString1"].ConnectionString;
    //实例化SqlConnection对象
    SqlConnection connection = new SqlConnection(connectionString);

从中可以看出好处:一旦开发时所用的数据库和部署时的数据库不一致,仅仅需要用记事本之类的文本编辑工具编辑connectionString属性的值就行了

2.<appSettings>节点

   作用:存储asp.net应用程序的一些配置信息,比如上传文件的保存路径等
例如可以配置图片类型:

复制代码 代码如下:

    <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>节点中的值:

string  FileType= ConfigurationManage.AppSettings["FileType"]; ----其实就是键值对的形式 取值的

3.<system.web> 节点:

所属子节点:

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

复制代码 代码如下:

            <compilation targetFramework="4.0" debug="true">
            <buildProviders>
                <add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>
            </buildProviders>
            </compilation>

3.2.<authentication>节点
        作用:控制用户对网站、目录或者单独页的访问

设置asp.net身份验证模式,有四种身份验证模式,它们的值分别如下:
Mode 说明
Windows 使用Windows身份验证,适用于域用户或者局域网用户。
Forms 使用表单验证,依靠网站开发人员进行身份验证。
Passport 使用微软提供的身份验证服务进行身份验证。
None 不进行任何身份验证。
 例如:            <!--请求模式-->
        <authentication mode="Forms"/>

 3.2.<customErrors>节点

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

例子:

复制代码 代码如下:

<!--错误跳转 mode="RemoteOnly"-->
        <customErrors mode="Off" defaultRedirect="/Error.aspx">
            <error statusCode="404" redirect="/404.aspx"/>
            <error statusCode="500" redirect="/500.aspx"/>
        </customErrors>

3.3<error>子节点

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

复制代码 代码如下:

    <customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
         <error statusCode="403" redirect="403.htm" />--如果用户没有权限访问请求的页面则会跳转到403.htm页面
         <error statusCode="404" redirect="404.htm" />--如果用户访问的页面不存在就会跳转到404.htm页面
    </customErrors>

    403.htm和404.htm页面都是我们自己添加的页面

3.4<httpHandlers>节点 

                 作用:用于根据用户请求的URL和HTTP谓词将用户的请求交给相应的处理程序,处理的结果就是用户不能查看或者下载相关的文件

         如果我们某个文件夹下的文件或 者某个类型的文件不允许用户下载,可以在</httpHandlers>节点中增加相应的子节点。

例子:我们的asp.net应用程序中建立一个IPData目录,在IPData目录中创建一个IPData.txt文件,在Web.config中添加以下配置

复制代码 代码如下:

    <httpHandlers>
          <add path="IPData/*.txt" verb="*" type="System.Web.HttpForbiddenHandler"/>---代码的作用是禁止访问IPData目录下的任何txt文件
     <add path="*.mdf" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
            <add path="*.ldf" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>---针对*.mdf、*.ldf文件,Get或者Post请求都会交给 System.Web.HttpForbiddenHandler来处理,用户不能查看或者下载相关的文件
    </httpHandlers>

 3.5.<httpRuntime>节点 

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

    <httpRuntime maxRequestLength="40960" executionTimeout="60" appRequestQueueLimit="100"/>

 3. 6.<pages>节点

用于表示对特定页设置,主要有三个属性

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

     <pages buffer="true" enableViewStateMac="true" validateRequest="false"/>

3.7<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模式来存储会话状态数据,这种模式的好处是存取速度快,缺点是比较占用内存,所以不宜在这种模式下存储大型的用户会话数据。

4<system.webServer>

----------------------
<defaultDocument>
作用:当请求 URL 未包含 Web 应用程序的特定文件时,IIS 7.0 将提供一个默认文件。
在 system.webServer 元素内,创建一个 defaultDocument 元素。

在 defaultDocument 元素内,创建一个 files 元素。

在 files 元素内创建一个 add 元素,并在 value 属性内指定默认文件的路径和名称。

复制代码 代码如下:

<configuration>
  <system.webServer>
    <defaultDocument>      <files>        <add value="Products.aspx" />      </files>    </defaultDocument>-----配置默认文件,为提供 Products.aspx 文件作为默认文件
  </system.webServer>
</configuration>

[!--infotagslink--]

相关文章

  • ASP.NET购物车实现过程详解

    这篇文章主要为大家详细介绍了ASP.NET购物车的实现过程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • .NET Core下使用Kafka的方法步骤

    这篇文章主要介绍了.NET Core下使用Kafka的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-09-22
  • 在ASP.NET 2.0中操作数据之七十二:调试存储过程

    在开发过程中,使用Visual Studio的断点调试功能可以很方便帮我们调试发现程序存在的错误,同样Visual Studio也支持对SQL Server里面的存储过程进行调试,下面就让我们看看具体的调试方法。...2021-09-22
  • Win10 IIS 安装.net 4.5的方法

    这篇文章主要介绍了Win10 IIS 安装及.net 4.5及Win10安装IIS并配置ASP.NET 4.0的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-22
  • 详解.NET Core 3.0 里新的JSON API

    这篇文章主要介绍了详解.NET Core 3.0 里新的JSON API,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-09-22
  • .net数据库操作框架SqlSugar的简单入门

    这篇文章主要介绍了.net数据库操作框架SqlSugar的简单入门,帮助大家更好的理解和学习使用.net技术,感兴趣的朋友可以了解下...2021-09-22
  • ASP.NET Core根据环境变量支持多个 appsettings.json配置文件

    这篇文章主要介绍了ASP.NET Core根据环境变量支持多个 appsettings.json配置文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-09-22
  • 记一次EFCore类型转换错误及解决方案

    这篇文章主要介绍了记一次EFCore类型转换错误及解决方案,帮助大家更好的理解和学习使用asp.net core,感兴趣的朋友可以了解下...2021-09-22
  • .NET C#利用ZXing生成、识别二维码/条形码

    ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。这篇文章主要给大家介绍了.NET C#利用ZXing生成、识别二维码/条形码的方法,文中给出了详细的示例代码,有需要的朋友们可以参考借鉴。...2020-06-25
  • 详解ASP.NET Core 中基于工厂的中间件激活的实现方法

    这篇文章主要介绍了ASP.NET Core 中基于工厂的中间件激活的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-22
  • C#使用Ado.Net更新和添加数据到Excel表格的方法

    这篇文章主要介绍了C#使用Ado.Net更新和添加数据到Excel表格的方法,较为详细的分析了OLEDB的原理与使用技巧,可实现较为方便的操作Excel数据,需要的朋友可以参考下...2020-06-25
  • asp.net通过消息队列处理高并发请求(以抢小米手机为例)

    这篇文章主要介绍了asp.net通过消息队列处理高并发请求(以抢小米手机为例),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-09-22
  • ASP.NET 2.0中的数据操作:使用两个DropDownList过滤的主/从报表

    在前面的指南中我们研究了如何显示一个简单的主/从报表, 该报表使用DropDownList和GridView控件, DropDownList填充类别,GridView显示选定类别的产品. 这类报表用于显示具有...2016-05-19
  • ASP.NET单选按钮控件RadioButton常用属性和方法介绍

    RadioButton又称单选按钮,其在工具箱中的图标为 ,单选按钮通常成组出现,用于提供两个或多个互斥选项,即在一组单选钮中只能选择一个...2021-09-22
  • 详解.NET Core 使用HttpClient SSL请求出错的解决办法

    这篇文章主要介绍了.NET Core 使用HttpClient SSL请求出错的解决办法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2021-09-22
  • Python调用.NET库的方法步骤

    这篇文章主要介绍了Python调用.NET库的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-05-09
  • ASP.NET中iframe框架点击左边页面链接 右边显示链接页面内容

    这篇文章主要介绍了ASP.NET中iframe框架点击左边页面链接,右边显示链接页面内容的实现代码,感兴趣的小伙伴们可以参考一下...2021-09-22
  • 创建一个完整的ASP.NET Web API项目

    ASP.NET Web API具有与ASP.NET MVC类似的编程方式,ASP.NET Web API不仅仅具有一个完全独立的消息处理管道,而且这个管道比为ASP.NET MVC设计的管道更为复杂,功能也更为强大。下面创建一个简单的Web API项目,需要的朋友可以参考下...2021-09-22
  • ASP.NET连接MySql数据库的2个方法及示例

    这篇文章主要介绍了ASP.NET连接MySql数据库的2个方法及示例,使用的是MySQL官方组件和ODBC.NET,需要的朋友可以参考下...2021-09-22
  • Asp.Net使用Bulk实现批量插入数据

    这篇文章主要介绍了Asp.Net使用Bulk实现批量插入数据的方法,对于进行asp.net数据库程序设计非常有借鉴价值,需要的朋友可以参考下...2021-09-22