Web.Config配置详细说明
Posted 牵只蜗牛去散步!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web.Config配置详细说明相关的知识,希望对你有一定的参考价值。
|
<configuration>//顶层元素
<system.web>//大多应用程序设置位于此元素下
<sessionState mode='Inproc' timeout='10' />//设置会话状态超时时间
</system.web>
</configuration>
Table 3-1.可用于web.config的顶层配置元素
元素Element | 含义Purpose |
---|---|
<authentication> | 指定所使用的客户身份验证模式Specify the client authentication mode to use |
<authorization> | 允许或者拒绝用户或角色的访问Allow or deny users or roles access |
<browserCaps> | 根据用户代理指定浏览器的能力Specify browser capabilities based on user agent |
<clientTarget> | 定义客户目标Define client targets |
<compilation> | 控制同页编译和程序集引用Control page compilation and assembly references |
<customErrors> | 控制错误页显示和定义自定义的错误页Control error page display and define custom error pages |
<globalization> | 设置请求和响应的编码Set the request and response encoding |
<httpHandlers> | 添加或移除HTTP处理程序Add or remove HTTP handlers |
<httpModules> | 添加或移除HTTP模块Add or remove HTTP modules |
<httpRuntime> | 控制HTTP请求的处理Control aspects of HTTP request processing |
<identity> | 为该应用程序指定标识Specify impersonation for this application |
<machineKey> | 控制验证和解密的钥匙Control the validation and decryption key |
<pages> | 设置全局的网页默认属性Set defaults for page attributes globally |
<processModel> | 控制工作者进程的行为方式Control the behavior of the worker process |
<securityPolicy> | 使用相关的策略文件定义信任等级Define trust levels with associated policy files |
<sessionState> | 控制会话状态Control session state |
<trace> | 启用应用程序范围的跟踪Enable application-wide tracing |
<trust> | 选择使用的信任等级Select which trust level to use |
<webServices> | 指定Web服务的协议和范围Specify Web service protocols and extensions |
<appSettings> | 添加应用程序专用的数据元素Add application-specific data elements |
1, 配置的四个层次
(1)机器:machine.config:位于$FRAMEWORK\\CONFIG($FRAMEWORK一般是c:\\winnt\\Microsoft.NET\\Framework\\v1.0.3705),
是.net必须备的默认配置文件。
web.config用来修改.net默认配置。
(2)站点:web站点根目录下的web.config,影响全站配置
(3)程序:应用程序虚目录根下的web.config,影响全虚目录配置
(3)子目录:虚目录的子目录下的web.config,影响该子目录及其子目录下配置
Figure 3-1. Hierarchy of Configuration Files
2,通过location元素简化web.config配置:
Listing 3-2 Using the location Element
<configuration>
<location path="bar">//作用就相当于在bar目录下配置了指定的web.config配置
<system.web>
<httpHandlers>
<remove verb="*" path="*.ashx" />
</httpHandlers>
</system.web>
</location>
</configuration>
3,元素的配置规定:
authentication, sessionState, trust, 和 httpModules(即使在老版本.net允许在子目录中配置,也是不生效的)元素属于应用程序级别的元素,不能配置于子目录下的 web.config。processModel属于机器级别元素,只能用于machine.config。
4,元素的更改生效时间:
一般web.config更改后,会自动重新加载程序,并放弃原进程的会话状态和程序状态。如果是processModel更改,只有终止工作者进程(可手工IIS复位,可撤销aspnet_wp.exe进程,也可因进程意外反弹自身)然后重新启动,才能应用新配置,同时放弃所有运行于该机器上的.net 程序状态,缓存数据和会话状态。
5,IIS与web.config配置
如果使用了IIS,则IIS的安全配置等优秀于.net配置。如此可以只使用IIS默认配置,而在web.config中具体配置。
二,常量配置appSettings
使用appSettings元素的add子元素的key和value属性(键值不分大小写)来存储常量设置。
Listing 3-3 Specifying Application-Specific Configuration Data
<!— File: web.config —>
<configuration>
<appSettings>
<add key="DSN"
value="server=localhost;uid=sa;pwd=;database=pubs"
/>
<add key="bgColor" value="white" />
</appSettings>
</configuration>
程序启动后,配置就载入内存,有访问权限(.net使用HttpForbiddenHandler来控制对.config.cs, .vb, .asax, .resx文件的访问权限,默认下外部程序不可访问配置文件)的程序就可以使用ConfigurationSettings.AppSettings ["DSN"]的方式直接引用配置的值。
Listing 3-4 Retrieving appSettings Configuration Data
<!— File: samplepage.aspx —>
<%@ Page Language='C#' %>
<%@ Import Namespace='System.Configuration' %>
<script runat=server>
protected void Page_Load(object src, EventArgs e)
string dsn = ConfigurationSettings.AppSettings["DSN"];
// use dsn to connect to a database...
string bgColor =
ConfigurationSettings.AppSettings["bgColor"];
// use retrieved background color...
</script>
<!— remainder of page not shown —>
三,进程配置processModel
只能在machine.config中使用processModel,其改动只在aspnet_wp.exe进程重启后生效,并由unmanaged (非托管?)的aspnet_isapi.dll(ISAPI扩展dll)读取,而非象其他配置一样由managed mechanism(托管机制?)读取。
Table 3-2. Attributes of the processModel Element
Attribute | Values | Default | Description |
---|---|---|---|
Enable | true | false | true | 指定ASP.NET是驻留在外部工作者进程中(true),还是直接在inetinfo.exe中(false) |
timeout | Infinite | HH:MM:SS | Infinite | 进程的总生命期——超时后进程反弹Total life of a process—process bounced after timeout |
idleTimeout | Infinite | HH:MM:SS | Infinite | 进程的总空闲期——当到达超时时间时进程反弹Total idle life of a process—process bounced when reached |
shutdownTimeout | Infinite | HH:MM:SS | 0:00:05 | 在撤消进程之前,给予进程关闭的时间Time given to process to shut down before being killed |
requestLimit | Infinite | number | Infinite | 进程反弹之前,要服务的总需求量Total number of requests to serve before bouncing process |
requestQueueLimit | Infinite | number | 5000 | 进程反弹之前.所允许的在队列中等待的请求数量 |
restartQueueLimit | Infinite | number | 10 | 进程重启时.在队列中等待的请求量Number of requests kept in queue while process is restarting |
memoryLimit | Number | 60 | 进程反弹之前.允许进程使用的物理内存百分数Percentage of physical memory process is allowed to use before bouncing process |
webGarden | true | false | false | 指定进程是否与特定CPU建立密切关系(对于多CPU机器)Whether process should be affinitized with a particular CPU (for multi-CPU machines) |
cpuMask | Bitmask | 0xffffffff | 控制ASP.NET工作者进程所用的CPU数 |
userName | SYSTEM | MACHINE | username | MACHINE | 运行工作者进程所需的Windows身份 |
Password | AutoGenerate | password | AutoGenerate | username的密码Password for username |
logLevel | All | None | Errors | Errors | 登记在事件日志中的事件类型Event types logged to event log |
clientConnectedCheck | HH:MM:SS | 0:00:05 | 执行客户连接的检查前.请求保留在队列中的时间Time a request is left in the queue before a client-connected check is performed |
comAuthenticationLevel | Default | None | Connect | Call | Pkt | PktIntegrity | PktPrivacy | Connect | DCOM的安全性身份验证的级别Level of authentication for DCOM security |
comImpersonationLevel | Default | Anonymous | Identify | Impersonate | Delegate | Impersonate | COM的安全性身份验证的级别Authentication level for COM security |
responseRestartDeadlockInterval | Infinite | HH:MM:SS | 00:09:00 | 由于responseRestart-DeadlockInterval而重启工作者进程所需的等待时间Time to wait between restarting worker process because of responseRestartDeadlockInterval |
responseDeadlockInterval | Infinite | HH:MM:SS | 00:03:00 | 在队列中有等待的请求时,为监测死锁而设定的响应超时For deadlock detection, timeout for responses when there are queued requests |
maxWorkerThreads | Number | 25 | 线程池中每个CPU的最多工作者线程量 |
maxIoThreads | Number | 25 | 线程池中每个CPU的最多I./O线程量Maximum number of I/O threads per CPU in the thread pool |
serverErrorMessageFile | File name | "" | Web.Config配置详细说明 |