我们在开发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配置文件使用总结的更多相关文章

  1. Web.config配置文件详解

    整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <?xml v ...

  2. asp.net项目中通过Web.config配置文件及文件夹的访问权限!

    描述:在开发中我们通常会碰到这样的问题,例如:在项目的根目录下面有一个文件或者文件夹需要用户登陆后才能访问.如果用户在没有登录的情况下访问该文件或者该文件夹下面的文件时,直接拦截重定向到对应的登陆页面 ...

  3. [转]Web.config配置文件详解(新手必看)

    本文转自:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html 花了点时间整理了一下ASP.NET Web.config配 ...

  4. 转:Web.config配置文件详解(新手必看)

    转:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html 花了点时间整理了一下ASP.NET Web.config配置文件 ...

  5. Web.config配置文件

    优点:Web.config配置文件使得ASP.NET应用程序的配置变得灵活高效和容易实现并为ASP.NET应用提供了可扩展的配置,使得应用程序能够自定义配置,同时还包括的优点有:配置设置易读性.更新的 ...

  6. Web.config配置文件详解(新手必看)

    花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <? ...

  7. .net Web.Config配置文件 转

    .net Web.Config配置文件 博客分类: .net   .net Web.Config配置文件 一.配置信息 <?xml version="1.0" encodin ...

  8. (转)Web.config配置文件详解(新手必看)

    花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <? ...

  9. .NET Core迁移技巧之web.config配置文件

    大家都知道.NET Core现在不再支持原来的web.config配置文件了,取而代之的是json或xml配置文件.官方推荐的项目配置方式是使用appsettings.json配置文件,这对现有一些重 ...

  10. .NET Core 2.0迁移技巧之web.config配置文件

    大家都知道.NET Core现在不再支持原来的web.config配置文件了,取而代之的是json或xml配置文件.官方推荐的项目配置方式是使用appsettings.json配置文件,这对现有一些重 ...

随机推荐

  1. JavaScript的continue和break的区别

    <html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...

  2. C# HttpWebRequest post 请求传参数

    Dictionary<string, string> parameters = new Dictionary<string, string>(); //参数列表 paramet ...

  3. 杭电1229 还是A+B

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1229 解题思路,最开始想的是把输入的数据存入数组中,比如输入 1,在数组中就储存为1000(因为数据不 ...

  4. associatedtype关联类型

    associatedtype关联类型   定义一个协议时,有的时候声明一个或多个关联类型作为协议定义的一部分将会非常有用.关联类型为协议中的某个类型提供了一个占位名(或者说别名),其代表的实际类型在协 ...

  5. ZBrush细说3D海盗角色的创建艺术

    一提到海盗,就不由自主想到了<加勒比海盗>,那个帅得一塌糊涂的杰克船长更是让人夜不能寐寝难安,但在艺术的世界里,角色无美丑,今天我们要讲的这位海盗,就与“帅气”八竿子打不着了,它甚至有点古 ...

  6. 【转】DBSCAN密度聚类算法

    DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种很典型的密度聚类算法,和K-M ...

  7. Vue2实例中的data属性三种写法与作用

    <script src="https://unpkg.com/vue/dist/vue.js"></script> <div id="app ...

  8. HDU 5901 Count primes( Meisell-Lehmer算法模板 )

    链接:传送门 题意:计算 [ 1 , n ] 之间素数的个数,(1 <= n <= 1e11) 思路:Meisell-Lehmer算法是计算超大范围内素数个数的一种算法,原理并不明白,由于 ...

  9. sessionStorage与clone方法在项目中的应用

    //资料列表: //JSON.parse(jsonstr); //json格式字符串转换成json对象 //JSON.stringify(jsonobj); //json对象转换成json格式字符串 ...

  10. 《使用CSLA 2019:CSLA .NET概述》原版和机译文档下载

    自己从作者官方网站上(http://www.cslanet.com/)下载的免费版.PDF文档,又使用有道付款翻译的,供大家下载学习,文档中是对CSLA.NET4.9版本的介绍. 下载链接:http: ...