web.config配置文件使用总结
我们在开发web系统的时候,使用web.config进行配置是司空见惯的,那么web.confg到底是什么呢?什么时候使用web.config呢?有几种使用web.config方式呢? 如果不太明白的话,那这篇文章就带领大家脑补下。
》》首先回答第一个问题,web.config是什么?
是一个XML文本文件。用来存储ASP.NETWEB的配置信息。修改不需要重启服务器就可以生效。
》》 然后第二个问题,什么时候使用web.config?
网站中很多不确定的可能随时更改的数据都可以写到配置文件里面。
》》有几种使用web.config的方式呢?
下面就介绍几种常见的:
~ connectionStrings配置(这个一般用来配置数据库连接)
- <connectionStrings>
- <add name="Default" connectionString="Server=.; Database=Inferno;User ID=sa; Password=pwd123;MultipleActiveResultSets=true" providerName="System.Data.SqlClient" />
- </connectionStrings>
获取:
- string dbStr=ConfigurationManager.ConnectionStrings["Default"].ConnectionString;
~appSettings配置(这个一般用来配置不确定的或者需要用户配置的内容)
- <appSettings>
- <add key="webpages:Version" value="3.0.0.0" />
- <add key="webpages:Enabled" value="false" />
- <add key="ClientValidationEnabled" value="true" />
- <add key="UnobtrusiveJavaScriptEnabled" value="true" />
- </appSettings>
获取
- string clientValidationEnabled= ConfigurationManager.AppSettings["ClientValidationEnabled"].ToString();
~自定义配置(这个一般用户批量配置某些内容)
例如,我下面定义了一个jieDian 键值对配置和一个 fileupload 上传文件集合配置
其中,上面的UploadConditionHandler我对应的是一个类:(这个类需要继承IConfigurationSectionHandler并实现Create方法)
- namespace TestProject
- {
- public class UploadConditionHandler : IConfigurationSectionHandler
- {
- public UploadConditionHandler() { }
- public static NameValueCollection ossrules = ConfigurationManager.GetSection("testSectionGroup/jieDian") as NameValueCollection;
- public static Dictionary<string, UploadRequiredParameters> ScreensDictionary = ConfigurationManager.GetSection("testSectionGroup/fileupload") as Dictionary<string, UploadRequiredParameters>;
- public object Create(object parent, object configContext, XmlNode section)
- {
- Dictionary<string, UploadRequiredParameters> screens = new Dictionary<string, UploadRequiredParameters>();
- try
- {
- string name = string.Empty;
- string path_rule = string.Empty;
- string disk = string.Empty;
- string receive_server = string.Empty;
- string ext_array = string.Empty;
- string max_memory_size = string.Empty;
- string enum_bucket_name = string.Empty;
- string max_pixel_height = string.Empty;
- string max_pixel_width = string.Empty;
- foreach (XmlNode childNode in section.ChildNodes)
- {
- if (childNode.NodeType != XmlNodeType.Element || childNode.Name != "upload")
- continue;
- if (childNode.Attributes["name"] != null)
- {
- name = childNode.Attributes["name"].Value;
- if (childNode.Attributes["path_rule"] != null)
- {
- path_rule = childNode.Attributes["path_rule"].Value;
- }
- if (childNode.Attributes["disk"] != null)
- {
- disk = childNode.Attributes["disk"].Value;
- }
- if (childNode.Attributes["receive_server"] != null)
- {
- receive_server = childNode.Attributes["receive_server"].Value;
- }
- if (childNode.Attributes["ext_array"] != null)
- {
- ext_array = childNode.Attributes["ext_array"].Value;
- }
- if (childNode.Attributes["max_memory_size"] != null)
- {
- max_memory_size = childNode.Attributes["max_memory_size"].Value;
- }
- if (childNode.Attributes["enum_bucket_name"] != null)
- {
- enum_bucket_name = childNode.Attributes["enum_bucket_name"].Value;
- }
- if (childNode.Attributes["max_height"] != null)
- {
- max_pixel_height = childNode.Attributes["max_height"].Value;
- }
- if (childNode.Attributes["max_width"] != null)
- {
- max_pixel_width = childNode.Attributes["max_width"].Value;
- }
- UploadRequiredParameters upload = new UploadRequiredParameters();
- upload.PathRule = path_rule;
- upload.Disk = disk;
- upload.ReceiveServer = receive_server;
- upload.ExtArray = ext_array;
- int maxMemorySize = ;
- if (int.TryParse(max_memory_size, out maxMemorySize))
- {
- upload.MaxMemorySize = maxMemorySize;
- }
- upload.EnumBucketName = enum_bucket_name;
- int maxPixelHeight = ;
- if (int.TryParse(max_pixel_height, out maxPixelHeight))
- {
- upload.MaxPixelHeight = maxPixelHeight;
- }
- int maxPixelWidth = ;
- if (int.TryParse(max_pixel_width, out maxPixelWidth))
- {
- upload.MaxPixelWidth = maxPixelWidth;
- }
- screens.Add(name, upload);
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- return screens;
- }
- }
- }
好了,上面的步骤完成后,就可以在其它地方调用了:
- string jieDian1=UploadConditionHandler.ossrules["JieDian1"];
- UploadRequiredParameters res = UploadConditionHandler.ScreensDictionary["UploadRules_Mostly"];
目前就先介绍这么多啦,有什么疑问的或者需要了解的欢迎留言~
web.config配置文件使用总结的更多相关文章
- Web.config配置文件详解
整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <?xml v ...
- asp.net项目中通过Web.config配置文件及文件夹的访问权限!
描述:在开发中我们通常会碰到这样的问题,例如:在项目的根目录下面有一个文件或者文件夹需要用户登陆后才能访问.如果用户在没有登录的情况下访问该文件或者该文件夹下面的文件时,直接拦截重定向到对应的登陆页面 ...
- [转]Web.config配置文件详解(新手必看)
本文转自:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html 花了点时间整理了一下ASP.NET Web.config配 ...
- 转:Web.config配置文件详解(新手必看)
转:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html 花了点时间整理了一下ASP.NET Web.config配置文件 ...
- Web.config配置文件
优点:Web.config配置文件使得ASP.NET应用程序的配置变得灵活高效和容易实现并为ASP.NET应用提供了可扩展的配置,使得应用程序能够自定义配置,同时还包括的优点有:配置设置易读性.更新的 ...
- Web.config配置文件详解(新手必看)
花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <? ...
- .net Web.Config配置文件 转
.net Web.Config配置文件 博客分类: .net .net Web.Config配置文件 一.配置信息 <?xml version="1.0" encodin ...
- (转)Web.config配置文件详解(新手必看)
花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <? ...
- .NET Core迁移技巧之web.config配置文件
大家都知道.NET Core现在不再支持原来的web.config配置文件了,取而代之的是json或xml配置文件.官方推荐的项目配置方式是使用appsettings.json配置文件,这对现有一些重 ...
- .NET Core 2.0迁移技巧之web.config配置文件
大家都知道.NET Core现在不再支持原来的web.config配置文件了,取而代之的是json或xml配置文件.官方推荐的项目配置方式是使用appsettings.json配置文件,这对现有一些重 ...
随机推荐
- 记一个男默女泪的 BUG
姗姗来迟的词频统计代码 BUG 的发现 1. 此前提交的第一次代码作业总结博客 http://www.cnblogs.com/ustczwq/p/8680704.html 2. BUG 本天成,妙手偶 ...
- Vue 项目打包和上线
1.把绝对路径改为相对路径 我们打开config/index.js 会看到一个build属性,这里就我们打包的基本配置了.你在这里可以修改打包的目录,打包的文件名.最重要的是一定要把绝对目录改为相对目 ...
- DDoS攻击与防范策略
DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要目的是让指定目标无法提供正常服务,甚至从互联网上消失,是目前最强大.最难防御的攻击之一. 按照发起的方式 ...
- 函数编程中functor和monad的形象解释
函数编程中functor和monad的形象解释 函数编程中Functor函子与Monad是比较难理解的概念,本文使用了形象的图片方式解释了这两个概念,容易理解与学习,分别使用Haskell和Swift ...
- shell中的交互模式:expect
在shell开发中,我们连接FTP或者passwd或sudo等操作时,需要手动输入密码.对于自动化而言,这显然是不合适的.而expect的强交互模式解决了这个问题.工作中偶有涉及到这个,个人也是简单的 ...
- Java桌球小游戏(兴趣制作)
两张图片放在src的同级目录下 版本一.出现窗口package cn.xjion.game;/** * 出现窗口 * @author xjion * */import java.awt.*;impor ...
- linux 性能分析与优化
一.影响Linux服务器性能的因素 1.操作系统级 (CPU 内存 磁盘I/O性能 网络带宽) 2.程序应用级 二.系统性能评估标准 好 坏 极差 cpu user% +sys% <70% ...
- 各种概念POJO、JAVABEAN、DAO、DTO、PO、VO、BO、SSH、EJB
转自:https://my.oschina.net/pacoyang/blog/151695 POJO(pure old java object)是普通java类,有一些private的参数作为对象的 ...
- openblas下载安装与使用
openblas下载 官方地址 zip文件 tar文件 openblas安装 直接执行 git clone https://github.com/xianyi/OpenBLAS.git cd Open ...
- python开发项目:学生选课系统
程序要求:1.创建北京.上海两所学校(分析:通过学校类实例化两个学校实例) 2.创建Linux.python.go三个课程,Linux\go在北京开,Linux在上海开(创建Linux.python. ...