第二章 ASP.NET应用程序配置
前言:
主要是对Web.config文件进行介绍。
程序开发结束后,需要在服务器上部署该应用程序。部署包括安装程序(?)和配置程序。
ASP.NET站点的配置过程(就是部署吧)是一个编写配置代码的过程,这些配置代码都把保存在Web.config文件中。
2.1概述
有一种常见情况:在网站的开发中,有时有些信息在多个页面上都要用到。这时,比较好的做法是把它当作全局信息存在一个地方,而不是在每个页面中都重复填写同样的代码,这样比较好修改和维护。一个例子就是数据库的连接串。
ASP开发的,一般把这样的全局信息放在Application对象中(上一章已经会用了);另一种办法是在Web.config中保存这些信息。
什么是ASP.NET的应用程序配置?它为用户提供一个分层配置系统,以XML格式来实现这种分层。——〉一切配置信息存在Web.COnfig中。
特点:
1)XML的易读特性,都是文本格式的,改也方便。
2)ASP.NET配置文件可以存在于每个目录中,都叫Web.config,各自作用范围是本目录和子目录。
3)ASP.NET自动监测Web.config的改动,无须重启服务器。
4)ASP.NET配置系统可扩展,开发人员可以自定义配置节<>和配置参数,并编写相应的配置节处理程序。要看,有点迷惑]
5)<location>和allowOverride.
6)通过配置IIS阻断外界访问配置文件。HTTP访问错误403(禁止访问)。
一些配置:(有多个配置文件存在)
1)基本配置machine.config,在……
2)wwwroot根目录下的C:/inetpub/wwwroot/Web.config 可以看一下去
3)应用程序根目录下的D:/MyApplication/
4)子目录文件架下的D:/MyApplication/MyDir/
2.2配置文件格式
a.一般,Web.config的根为<configuration></configuration>,配置信息全在这标记之间。
b.最有用的<system.Web></system.Web>,这个包含所有规范的配置节设置。
c.若要定义application-wide,要使用<appSettings>标记。这个叫特定应用程序配置。
在之中,可用<add key = “name” value = “string code”/>。
d.Web.config文件整个部分分为 配置节处理程序声明 和 配置节设置。
声明部分:<configSections></configSections>
之中用<section name = “” type = “”/>
e.用配置节组来为声明划分组:
<sectionGroup name = “system.net”>
<section ....../>
<section ....../>
</sectionGroup>
<sectionGroup name = “system.Web”>
<section ....../>
<section ....../>
<section ....../>
</sectionGroup>
2.3配置节
a.<configuration></configuration>
b.<configSections><section name = “” type = “”></configSections>
c.<appSettings><add key = “” value = “”></appSettings> 如何用上待会说
d.<compliation defaultLanguage = “c#” debug = “true”>
e.<customErrors
mode = “RemoteOnly” à On、Off、RemoteOnly
defaultRedirect = “error.html”
<error statusCode = “ 450”
redirect = “error450Page.html”
/>
/>
customErrors可以自定义错误消息,对一些错误状态码(450号错误)指定自定义的重定向页面。
f.<globalization
requestEncoding = “utf -8” à 用来检查发来请求的编码?
responseEncoding = “utf -8” à 用来检查发挥相应的编码?
fileEncoding = “utf -8” à用于检查ASPX、ASAX等文件解析的默认编码?
/> 机器级?
不懂,也没兴趣再查了
g.<sessionState
mode = “InProc” à 设置会话状态 Off/Inproc自身存储/StateServer存于单独的Asp.NET服务器中/SqlServer存于SQL Server中
stateConnectionString = “tcpip = 127.0.0.1: 42424” à 存储会话状态的服务器
sqlConnectionString = “data source = 127.0.0.1; user id = sa; password = ”
cookieless = “false”
timeout = “ 20”
/>
h.<trace
enabled = “false”
requestLimit = “ 10” à 指定根种请求的数目,默认10
pageOutput = “false” à 显示跟踪信息或是通过trace实用程序访问。
traceMode = “SortByTime”
/>
在应用程序内为每一页启用跟踪日志输出。
i.<authentication mode = “”></authentication> 安全配置
mode = “” à windows/froms/passport/none
name
loginUrl
Protection = “” à all/none/Encryption/validation
timeout
以下是一个例子,用了<authentication>和<authorization>。
2.4 使用位置和路径
为一个Web.config文件指定它起作用的路径。
<location path = “mydir/page.aspx”>
<!—这里是该路径下的配置节内容 -->
</location>
一个配置文件中可以有多个路径,在不同路径下是不同的配置内容。
另外,allowOverride属性表示是否允许其他配置文件对这个进行修改。
2.5扩展配置文件
a.appSettings
<appSettings>
<add key=“ORACLEConnectionString” value=“Provider = OraOLEEDB.Oracle.1; Persist Security Info = False; Password = 123; User ID = sa; Data Source = Info;”/>
<add key = “SQLConnectionString”
value = “server = Ranma; database = northwind; trusted_Connection = yes”/>
</appSettings>
b.扩展自定义的配置信息
<configuration>
<configSections>
<section name = “ownSettings”
type = “System.Configuration.NamValueFileSectionHandler, System, Version = 1. 0.3300 ”
/>
</configSections>
<ownSettings>
<add key = “connString”
value = “server = localhost; database= northwind; usid = sa; password = ;”
/>
</ownSettings>
</configuration>
2.6最后是使用配置文件
a.访问<browserCaps>,这个节是machine.config文件的,记载了客户端浏览器的一些信息,通过 System.Web.HttpRequest类的Browser属性访问。
String xxx = Request.Browser.xxx.toString();
其中,xxx是节中的属性,如ActiveXControls/BackgroundSoounds/Browser/Version等。
b.访问扩展应用程序配置信息
用SysTem.Configuration.ConfigurationSettings类。
String sqlconn = ConfigurationSettings.AppSettings[“SQLConnecionString”];
c.访问自定义的配置信息
String sqlconn = ConfigurationSettings.GetConfig[“ownSettings”][“connString”];
整个就这样。