本次我们讨论主要聚焦在以下Web.config配置文件的设置值的读取。

1、<connectionString />连接字符串的读取。

2、<appSettings />应用程序设置值的读取。

3、<mailSettings />SMTP Mail设置值的读取。

在讨论读取上面3个节点配置钱我们先讨论一下下面3个类:

1、Configuration类(System.Configuration.Configuration)。

2、WebConfigurationManager类(System.Web.Configuration.WebConfigurationManager)。

3、ConfigurationManager类(System.Configuration.ConfigurationManager)。

以下大致介绍这3个类的功能。

1、Configuration类:

可将Configuration类视为.NET应用程序的配置本体(包含Web或Windows两类应用程序),通过它访问ASP.NET网站的Web.config文件或Windows Form专案的app.config文件。但Configuration类必须要和WebConfigurationManager或ConfigurationManager类搭配,要看应用程序是ASP.NET或Windows Form类型,ASP.NET使用WebConfigurationManager类,Windows Form使用ConfigurationManager类。

2、WebConfigurationManager类:

WebConfigurationManager类是提供对Web.config的访问,例如,以WebConfigurationManager类开启Web.config某个部分(Section),再返回交由Configuration类来进行处理。

3、ConfigurationManager类

ConfigurationManager类是提供对app.config的访问权,例如,以ConfigurationManager类开启app.config某个部分,再返回交由Configuration类来进行处理。

总结归纳:最终的搭配使用方式。

1)、ASP.NET网页:Configuration类+WebConfigurationManager类。

2)、Windows Forms类型:Configuration类+ConfigurationManager类。

附注:

A、虽WebConfigurationManager与ConfigurationManager类功能是互通的,但微软建设还是清楚区分使用。

B、WebConfigurationManager与ConfigurationManager都属于静态类,可直接取用,不需要new一个instance实例。

我们这次并非对以上3大类的功能进行详细的讲解,而是聚焦在以下Web.config配置文件的设置值的读取。

<connectionStrings />、<appSettings />、<mailSettings />的读取。

我们就是用以上讲解的3大类读取Web.config文件中的配置文件部分。

以下是一个简单的项目Web.config配置:

<?xml version="1.0" encoding="utf-8"?>

<!--
  有关如何配置 ASP.NET 应用程序的详细消息,请访问
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
  <appSettings>
    <add key="name" value="ASP.NET"/>
    <add key="desc" value="IT学习分享"/>
  </appSettings>

<!--数据库连接设置-->
  <connectionStrings>
    <add name="FlightData" connectionString="Data Source=.;Initial Catalog=FlightData;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>

<!--SMTP设置-->
  <system.net>
    <mailSettings>
      <smtp from="yongguang1126@sina.com">
        <network host="192.168.0.132" password="" userName=""/>
      </smtp>
    </mailSettings>
  </system.net>

<system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
</configuration>

1、读取<connectionStrings>部分连接字符串设置值

在此以WebConfigurationManager类的ConnectionStrings属性读取Web.config文件中<connectionStrings>部分的连接字符串设置值:

第一步:首先引用命名空间:System.Web.Configuration

第二步:引用了命名空间,我们就可以读取了

string conStr=WebConfigurationManager.ConnectionStrings["FlightData"].ConnectionString;

Response.Write("FlightData连接字符串:"+conStr);

2、读取<appSettings>部分应用程序设置值

在此以WebConfigurationManager类的AppSettings属性读取Web.config文件中<appSettings>部分应用程序设置值:

string name=WebConfigurationManager.AppSettings["name"];

Response.Write("名称:"+name+"<br />");

string desc=WebConfigurationManager.AppSettings["desc"];

Response.Write("描述:"+desc);

说明:

读取应用程序设置与读取连接字符串差不多,只差在关键词上。此外,Key(关键词)使用中文命名若发生读不到值的情况,改用英文即可。

3、读取<mailSettings>部分SMTP Mail设置

以前的ASP.NET版本对于SMTP Mail主机设置不是在程序中设置固定,就是在Web.config的ConfigurationSetting.AppSettings中指定,然后读取设置值。到了ASP.NET4.0,如果还沿用以前的做法,表面上看来好像也能读到SMTP设置,但会出现一些问题,如ASP.NET的Password Recovery控件是自动抓取SMTP设置,以发送新密码信函,故改用新的方式才不会出错,如下:

//引用命名空间

using System.Net.Configuration;

using System.Web.Configuration;

//读取实例

//开启Request所在路径网站的Web.config文件

Configuration config=WebConfigurationManager.OpenWebConfiguration(this.Request.ApplicationPath);

//取得Web.config中Mail设置部分

MailSettingsSectionGroup netSmtpMailSection=(MailSettingsSectionGroup)config.GetSectionGroup("system.net/mailSettings");

//读取显示mailSettings设置相关值

Response.Write("Mail主机名:"+netSmtpMailSection.Smtp.Network.Host+"<br />");

Response.Write("Mail主机Port:"+netSmtpMailSection.Smtp.Network.Port+"<br />");

Response.Write("Mail消息:"+netSmtpMailSection.Smtp.From+"<br />");

//如果Mail的Authentication验证模式选择Basic,则可读取UserName及Password

//Response.Write("用户姓名:"+netSmtpMailSection.Smtp.Network.UserName+"<br />");

//Response.Write("用户密码:"+netSmtpMailSection.Smtp.Network.Password+"<br />");

说明:

程序读取到SMTP设置值后,再引用到ASP.NET发信的技巧,将信件发送出去就可以了。

ASP.NET Web.config文件的配置(Configuration API)的更多相关文章

  1. web.config文件中配置数据库连接的两种方式

    web.config文件中配置数据库连接的两种方式 标签: 数据库webconfig 2015-04-28 18:18 31590人阅读 评论(1)收藏举报    分类: 数据库(74)  在网站开发 ...

  2. IOC注入框架——Unity中Web.Config文件的配置与调用

    Unity 应用程序块可以从 XML 配置文件中读取配置信息.配置文件可以是 Windows Forms 应用程序的 App.config 或者 ASP.NET 应用程序的 Web.config.当然 ...

  3. Unity中Web.Config文件的配置与调用

    在上一篇文章“Unit简单依赖注入”我们可以实现构造对象和被依赖对象之间的 松耦合,使我们的抽象层(Player)能够保持稳定,但是在并没有把客户类和Player类之间彻底解耦,即当我们不想使用MP3 ...

  4. 如何在web.config文件中配置Session变量的生命周期

    实例说明:在网上购物商城中,为了维护在线购物环境,一般只有注册会员才可以购买商品.实现购物功能时,先通过Session变量记录会员的登录名,然后在购买商品页面通过判断会员是否登录确定其能否购买商品. ...

  5. ASP.NET - Web.config文件详解

    周金桥:asp.net夜话之十一:web.config详解 链接:http://zhoufoxcn.blog.51cto.com/792419/166441/

  6. 在ASP.NET项目中的web.config文件里配置数据库连接并在程序代码中获取连接字符串

      1.在<connectionStrings> 标签里添加连接 <connectionStrings> <add name="ConnectionName&q ...

  7. Web.Config文件配置之限制上传文件大小和时间

    在邮件发送系统或者其他一些传送文件的网站中,用户传送文件的大小是有限制的,因为这样不但可以节省服务器的空间,还可以提高传送文件的速度.下面介绍如何在Web.Config文件中配置限制上传文件大小与时间 ...

  8. SQL Server数据库连接,Web.config的正确配置 [转]

    http://database.51cto.com/art/201007/213289.htm 此文章主要介绍的是Web.config正确配置SQL Server数据库连接的实际擦步骤,在图5-6中, ...

  9. Asp.net Web.Config - 配置元素customErrors

    Asp.net配置文件的配置方式,其实在MSDN里面是写得最清楚的了.可惜之前一直未曾了解到MSDN的强大. 先贴个地址:http://msdn.microsoft.com/zh-cn/library ...

随机推荐

  1. ASP.NET MVC]WebAPI应用支持HTTPS的经验总结

    WebAPI应用支持HTTPS的经验总结 在我前面介绍的WebAPI文章里面,介绍了WebAPI的架构设计方面的内容,其中提出了现在流行的WebAPI优先的路线,这种也是我们开发多应用(APP.微信. ...

  2. Luogu2860 [USACO06JAN]冗余路径Redundant Paths

    Luogu2860 [USACO06JAN]冗余路径Redundant Paths 给定一个连通无向图,求至少加多少条边才能使得原图变为边双连通分量 \(1\leq n\leq5000,\ n-1\l ...

  3. Clustering[Evaluation]

    0. 背景 评估(或者说验证)聚类结果就如同聚类本身一样困难.通常的方法有内部评估和外部评估这两种: 内部评估的方法:通过一个单一的量化得分来评估算法好坏:该类型的方法 外部评估的方法:通过将聚类结果 ...

  4. RPC与Zookeeper注册中心的简单实现

    连接上文:https://www.cnblogs.com/wuzhenzhao/p/9962250.html RPC框架的简单实现,基于这个小程序,在我学习完Zookeeper之后如何将注册中心与RP ...

  5. 实战Asp.Net Core:部署应用

    1.前言 某一刻,你已经把 .Net Core 的程序写好了.接下来,还可以做什么呢?那就是部署了. 作为一名开发工程师,如果不会部署自己开发的应用,那么这也是不完整的.接下来,我们就来说说,如何部署 ...

  6. 探讨.NET Core中实现AES加密和解密以及.NET Core为我们提供了什么方便!

    前言 对于数据加密和解密每次我都是从网上拷贝一份,无需有太多了解,由于在.net core中对加密和解密目前全部是统一了接口,只是做具体的实现,由于遇到过问题,所以将打算基本了解下其原理,知其然足矣, ...

  7. mybatis源码-Mapper解析之SQL 语句节点解析(一条语句对应一个MappedStatement)

    目录 一起学 mybatis 0 <sql> 节点解析 1 解析流程 2 节点解析 2.1 解析流程 2.2 <include> 节点的解析 2.3 Node.ELEMENT_ ...

  8. Python网络爬虫实战:根据天猫胸罩销售数据分析中国女性胸部大小分布

    本文实现一个非常有趣的项目,这个项目是关于胸罩销售数据分析的.是网络爬虫和数据分析的综合应用项目.本项目会从天猫抓取胸罩销售数据,并将这些数据保存到SQLite数据库中,然后对数据进行清洗,最后通过S ...

  9. React中嵌套组件与被嵌套组件的通信

    前言 在React项目的开发中经常会遇到这样一个场景:嵌套组件与被嵌套组件的通信. 比如Tab组件啊,或者下拉框组件. 场景 这里应用一个最简单的Tab组件来呈现这个场景. import React, ...

  10. 从 0 到 1 实现 React 系列 —— 4.setState优化和ref的实现

    看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/. ...