webconfig 初认识
本文摘自网络大神们,还有待补充。
--------------------------------------------------------------------
.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.1<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>
webconfig 初认识的更多相关文章
- .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- Spring之初体验
Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- Xamarin.iOS开发初体验
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0
- 【初码干货】在Window Server 2016中使用Web Deploy方式发布.NET Web应用的重新梳理
在学习和工作的过程中,发现很多同事.朋友,在做.NET Web应用发布的时候,依然在走 生成-复制到服务器 这样的方式,稍微高级一点的,就是先发布到本地,再上传到服务器 这种方式不仅效率低下,而且不易 ...
- 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...
- 【Knockout.js 学习体验之旅】(1)ko初体验
前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...
- 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验
在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...
随机推荐
- django防止表单数据重复提交
思路: 在Asp.net中存在Page.IsPostback的方法,所以对django中表单提交数据的重复提交的数据采用相似方法实现,即在页面第一次访问时,即访问方法为GET方法在view中 ...
- java静态成员的初始化过程
public class Price{ final static Price INSTANCE = new Price(2.8); static double initPrice = 20; doub ...
- yii2 访问控制
class SiteController extends Controller{ /** * @inheritdoc */ public function behaviors() { return [ ...
- REST & SOAP webservice 小结
REST: REST是一种架构设计,特点是面向资源,存在于互联网的任何事物都可以理解为资源,REST相比较SOAP WS具有比较低的开发门槛. 1. 网络上的事物被抽象成资源,每个资源对应唯一的资源标 ...
- C# 加密可逆
现在一直在做一个小软件,公司的通讯录系统,也没什么功能增删改查,这算是我来这个公司实习的第一件事吧. 在修改个人信息的时候一直对于密码显示这个存在矛盾,不知道应该是要哪种形式去做,后来自己就先用md5 ...
- zabbix之2安装编译/基本功能实现
1.安装方式: rpm或者编译都可,rpm可以直接用yum安装. rpm安装的话,根据文件名进行选择即可. 编译的话,不同参数对应不同的组件. 编译安装zabbix:同时安装server和agent, ...
- 发布(Windows)
发布(Windows) 本篇将在这个系列演示的例子上继续记录Asp.Net Core在Windows上发布的过程. Asp.Net Core在Windows上可以采用两种运行方式.一种是自托管运行,另 ...
- JS+html实现简单的飞机大战
摘要:通过原生的js+html实现简单的飞机大战小游戏效果,如图所示: 实现代码如下: 1.自己的飞机实现 飞机html: <!DOCTYPE html> <html lang=&q ...
- Resharper使用
Resharper进阶一:简要介绍 官方下载地址下载地址 注册码: 用户名: User 注册码:D9d09DSYJel9IyuDU4btAQwZcbLugUad 面对这样一个问题:为什么.net能够 ...
- [转载] 50个Android开发人员必备UI效果源码
好东西,多学习! Android 仿微信之主页面实现篇Android 仿微信之界面导航篇Android 高仿QQ 好友分组列表Android 高仿QQ 界面滑动效果Android 高仿QQ 登陆界面A ...