">ASP.NET 网页包括一些它在运行时可由 ASP.NET 识别并处理的额外元素。ASP.NET 页面还可以包含可重用的自定义控件。这些自定义控件将由服务器处理。这样便可以使用服务器代码来设置 ASP.NET 网页属性。
IIS 7.0 允许配置以下 ASP.NET 页面和用户控件设置:
- 行为设置:例如,在当前页面请求结束时,该网页是否保留自身及其包含的所有服务器控件的视图状态。
- 常规设置:例如包括在所有页中的命名空间。
- 编译设置:例如是编译还是解释页面。
- 服务:例如是否启用会话状态。
(一)编辑页面和控件的设置
IIS 7.0 为 ASP.NET 页面和控件提供了默认设置,但我们可以根据需要更改这些设置。例如,您可以设置站点的主控页文件或启用视图状态。
1. 打开 IIS 管理器,然后导航至要管理的级别。
2. 在"功能视图"中,双击"页面和控件"。
3. 在"页面和控件"页中,根据需要编辑设置。
4. 完成后,请在"操作"窗格中单击"应用"。
此外,也可以通过命令行方式打到以上目的。
命令行
启用或禁用页面输出缓冲
若要启用或禁用页面输出缓冲,请使用下面的语法:
appcmd set config /commit:WEBROOT /section:pages /buffer:True|False
变量 buffer:True 用于启用页面输出缓冲。默认值为 True。
指定主控页文件
若要指定主控页文件,请使用下面的语法:
appcmd set config /commit:WEBROOT /section:pages /masterPageFile:string
变量string是主控页文件的名称。
指定样式表主题
若要指定应用于页面的样式表,请使用下面的语法:
appcmd set config /commit:WEBROOT /section:pages /styleSheetTheme:string
变量string是样式表的名称。
指定页面主题
若要指定用于配置文件范围内的页面的主题名称,请使用下面的语法:
appcmd set config /commit:WEBROOT /section:pages /theme:string
变量string是主题的名称。
启用或禁用经过身份验证的视图状态
若要启用或禁用在从客户端回发页面时对页面的视图状态进行消息验证检查 (MAC) 的功能,请使用下面的语法:
appcmd set config /commit:WEBROOT /section:pages /enableViewStateMac:True|False
变量 enableViewStateMac:True 用于启用经过身份验证的视图状态。默认值为 True。
启用或禁用视图状态
若要启用或禁用某一页面或该页面中包含的任何服务器控件的视图状态,请使用下面的语法:
appcmd set config /commit:WEBROOT /section:pages /enableViewState:True|False
变量 enableViewState:True 用于启用页面的视图状态。默认值为 True。
设置页面状态字段的最大长度
若要设置页面状态字段的最大长度,请使用下面的语法:
appcmd set config /commit:WEBROOT /section:pages /maxPageStateFieldLength:int
变量int是页面状态字段的最大长度。其值为正数时,发送到浏览器的视图状态字段将拆分成若干段。所有段的总和等于所设置的最大长度。如果为负数,则表示视图状态不应拆分为若干段。默认值为 -1。
指定页面的代码隐藏类
默认情况下,若要指定 .aspx 页面继承的代码隐藏类,请使用下面的语法:
appcmd set config /commit:WEBROOT /section:pages /pageBaseType:string
变量string是 .aspx 页面的代码隐藏类的名称。默认值为 System.Web.UI.Page。
指定控件的代码隐藏类
默认情况下,若要指定用户控件继承的代码隐藏类,请使用下面的语法:
appcmd set config /commit:WEBROOT /section:pages /userControlBaseType:string
变量string是用户控件的代码隐藏类的名称。默认值为 System.Web.UI.UserControl。
设置编译模式
若要指定是编译页面还是解释页面,请使用下面的语法:
appcmd set config /commit:WEBROOT /section:pages /compilationMode:Auto|Never|Always
变量 compilationMode:Auto 将 ASP.NET 设置为尽可能不编译页面。变量 compilationMode:Never 将 ASP.NET 设置为永不动态编译页面。如果某一页面包含需要编译的脚本块或代码构造,ASP.NET 将返回错误,并且该页面将无法运行。变量 compilationMode:Always 将 ASP.NET 设置为始终编译页面。默认值为 True。
添加命名空间
若要向在预编译期间使用的命名空间集合添加命名空间,请使用下面的语法:
appcmd set config /commit:WEBROOT /section:pages /+"[namespace='string']"
变量string是要添加到此集合中的命名空间。
删除命名空间
若要从在预编译期间使用的命名空间集合中删除命名空间,请使用下面的语法:
appcmd set config /commit:WEBROOT /section:pages /-"[namespace='string']"
变量string是要从此集合中删除的命名空间。
启用或禁用会话状态
若要启用或禁用会话状态,请使用下面的语法:
appcmd set config /commit:WEBROOT /section:pages /enableSessionState:True|False|ReadOnly
变量 enableViewState:ReadOnly 表示会话状态不可写。默认值为 True。
启用或禁用请求验证
若要允许或禁止检查来自浏览器的所有输入是否包含存在潜在危险的内容,请使用下面的语法:
appcmd set config /commit:WEBROOT /section:pages /validateRequest:True|False
变量 validateRequest:True 表示启用请求验证。默认值为 True。
注: 在 IIS 7.0 中使用 Appcmd.exe 在全局级别配置 <pages> 元素时,必须在命令中指定 /commit:WEBROOT,以便对根 Web.config 文件而不是对 ApplicationHost.config 进行配置更改。