历史回顾:
在做机房收费系统的时候,用到了抽象工厂加反射实现数据库的更换功能。在工厂中首先定义程序集的名字和命名空间的名字,将程序集的名字和命名空间的值写在配置文件中,当执行到Factory函数时程序会自动通过读取配置文件中的相应字符,按照路径实例化出相应的对象。
<appSettings>
<add key="ConnStr" value="Data Source=192.168.24.94;Initial Catalog=MyCharge_sys;User ID=sa;Pwd=123456" ></add> <add key="DBString" value="Sql" ></add> </appSettings>
这样就使得我们不必每次都连接数据库的时候再写连接语句,直接利用反射即可,而且可以在更换数据库之后直接修改配置文件,配置文件可以在系统之外打开修改,可以利用任何文本编辑工具即可。
牛腩新闻发布系统中,设置系统出错自动跳转到出错页。系统中所有出错页面都会自动跳转到这一个出错页面。
<system.web> <!--出现错误的时候自动导向--> <customErrors mode="On" defaultRedirect ="~/error.html"></customErrors> </system.web>
我对配置文件的理解:
在用户第一次登录到计算机上时被创建,配置文件被储存在计算机的本地硬盘驱动器上。用户在设置和使用软件时的设置和文件的集合。它包括用户专用的配置设置,如程序项目、屏幕颜色、网络连接、打印机连接、鼠标设置及窗口的大小和位置等。
ASP.NET再见配置文件
在这里主要分为两类:
1、 Machine.Config
每台计算机上仅可有一个Machine.Config文件,应用到驻留在服务器上的所有应用程序。由于ASP.NET运行时是要加载很多的配置文件的,当然Machine.Config是一定要加载的,但是其中有些配置不是必须的,所以为了缩短ASP.NET的加载事件,可以移到别的地方,如果用到就加载。
2、Web.Config
每个应用程序可有一个Web.Config文件,重写Machine.Config的设置。应用到驻留在服务器上的单个应用程序
详解Web.Config
Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web应用程序的配置信息(如最常用的设置ASP.NET Web应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当在VB.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果想修改子目录的配置设置,可以在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。
在运行时对Web.config文件的修改不需要重启服务就可以生效。Web.config文件是可以扩展的,可以自定义新配置参数并编写配置节处理程序以对它们进行处理。
几种元素:
(1)<authentication>
作用:配置 ASP.NET身份验证支持(为Windows、Forms、PassPort、None四种)。该元素只能在计算机、站点或应用程序级别声明。<authentication>元素必需与<authorization> 节配合使用。
例:当没有登陆的用户访问需要身份验证的网页,网页自动跳转到登陆网页。
<authentication mode="Forms" > <formsloginUrl="logon.aspx" name=".FormsAuthCookie"/> </authentication>
其中元素loginUrl表示登陆网页的名称,name表示Cookie名称
(2)<authorization>
作用:控制对 URL资源的客户端访问(如允许匿名用户访问)。此元素可以在任何级别(计算机、站点、应用程序、子目录或页)上声明。必需与<authentication>节配合使用。
例:禁止匿名用户的访问
<authorization> <denyusers="?"/> </authorization>
?表示匿名用户,
*表示所有用户,还可以指定具体禁止具体的用户
(3)<system.web>
<pages buffer="true"/>所有页面配置。
Buffer="true",启用服务器端缓冲,服务器生成一个完整页面统一发送给客户端.
Buffer="false"没有启用缓冲,以16K为一单元,向客户端不停的断续发送.
<appSettings>应用程序的自定义配置,一般放置常量,区分大小写。创建一个存储数据库连接字符串。
<add key="con"value="server=.;database=Charge_sys;uid=sa;pwd=123456"></add> SqlConnection con=newSqlConnection(System.Configuration.ConfigtuationSettings.AppSettings["con"]
(4)<customErrors>
作用:为 ASP.NET 应用程序提供有关自定义错误信息的信息。
例:当发生错误时,将网页跳转到自定义的错误页面。
<customErrorsdefaultRedirect="ErrorPage.aspx"mode="RemoteOnly"> </customErrors>
其中:defaultRedirect表示自定义的错误网页的名称。mode元素表示:对不在本地Web 服务器上运行的用户显示自定义(友好的)信息。
On表示在本地和远程用户都会看到自定义错误信息;
Off禁用自定义错误信息,本地和远程用户都会看到详细的错误信息。
RemoteOnly表示本地用户将看到详细错误信息,而远程用户将会看到自定义错误信息。
总结:
既然有简单的方法,为什么还要去绕弯子呢?既然可以避免重复,我们就要尽量去达到可复用。可以说配置文件方便了编程,有些易变的东西我们可以抽出来不需要修改代码就可以修改。就像是机房收费系统中,我们可以灵活的改变数据库。可以灵活的连接不同的数据库。其实以参数的方式也可以实现类似的功能,但是当连接实例改动时,配置文件方式的改动要比参数方式来的更简便安全。