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配置文件,这对现有一些重 ...
随机推荐
- Android java处理保留小数点后几位
方式一: 四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = ...
- size_t与size_type的使用
size_t 是为了方便系统之间的移植而定义的 在32位系统上 定义为 unsigned int在64位系统上 定义为 unsigned long 更准确地说法是 在 32位系统上是32位无符号整形在 ...
- Programming Recipes
Recipes是从一本书上看来的,即有诀窍又有食谱的意思.这里想记一些工作中遇到的问题和解决方法,说决窍有点过了,说食谱照单做又不足,所以Recipe这个词两个意思都有混合起来正合适. 1.Windo ...
- idea中git的运用
创建本地 Git 仓库 安装 Git 插件 将代码添加到 Git 的本地仓库 在 GitHub 中创建仓库
- 团体程序设计天梯赛-练习集-L1-028. 判断素数
L1-028. 判断素数 本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(<=10),随后N行,每行给出一个小于231的需要判断的正整数. 输出格 ...
- SPOJ DISQUERY LCA + 倍增
裸题,如此之水- Code: #include<cstdio> #include<algorithm> using namespace std; const int maxn ...
- Project Euler 46 Goldbach's other conjecture( 线性筛法 )
题意: 克里斯蒂安·哥德巴赫曾经猜想,每个奇合数可以写成一个素数和一个平方的两倍之和 9 = 7 + 2×1215 = 7 + 2×2221 = 3 + 2×3225 = 7 + 2×3227 = 1 ...
- <url-pattern>/</url-pattern> 拦截请求
一.springmvc 前端控制器 <!-- springmvc的前端控制器 --> <servlet> <servlet-name>fw-sso-web</ ...
- Linux中/etc/init.d
原文链接:http://blog.163.com/laorenyuhai126@126/blog/static/193507792010525110516/ 在这个目录下的档案都是连结档,均指向到 ...
- POJ 1091
这题确实是好. 其实是求x1*a1+x2*a2+....M*xn+1=1有解的条件.很明显,就是(a1,a2,...M)=1了.然后,可以想象,直接求有多少种,很难,所以,求出选择哪些数一起会不与M互 ...