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 进行配置更改。
(二)配置自定义控件
Web 自定义控件是一种已编辑组件,它们在服务器上运行,可将用户界面及其他相关功能封装到可重用的包中。在 IIS 7.0 中,您可以为能在应用程序的多个页面中使用的自定义控件指定标记前缀和命名空间映射。
A、查看自定义控件列表
若要轻松管理自定义控件,可以查看包含特定配置级别的所有自定义控件的列表。可以按标记前缀、源或程序集或者按范围(本地或继承)对此列表进行排序。此外,还可以按范围对控件进行分组,以便快速查看哪些自定义控件适用于当前配置级别,以及哪些自定义控件是从父级继承而来的。
1. 打开 IIS 管理器,然后导航至要管理的级别。
2. 在"功能视图"中,双击"页面和控件"。
3. 在"操作"窗格中,单击"注册控件"。
4. 若要快速查看哪些控件是自定义控件,请从"分组依据"下拉列表中选择"控件类型"。
B、添加自定义控件
如果要为将用在应用程序多个页面上的自定义控件指定标记前缀/命名空间映射,就需要添加该自定义控件。
注: 添加配置设置时,将在本地级别以及继承该设置的所有子级别中添加该设置。
1. 打开 IIS 管理器,然后导航至要管理的级别。
2. 在"功能视图"中,双击"页面和控件"。
3. 在"操作"窗格中,单击"注册控件"。
4. 在"操作"窗格中,单击"添加自定义控件"。
5. 在"添加自定义控件"对话框的"标记前缀"文本框中,键入一个标记前缀。
6. 在"命名空间"文本框中,键入该自定义控件所属的命名空间。这是在应用程序代码中指定的命名空间。
7. 在"程序集文本框中,键入该自定义控件的源文件或程序集,然后单击"确定"。
C、编辑自定义控件
当本地自定义控件的前缀、命名空间或程序集发生更改时,就需要编辑该自定义控件。
注: 编辑配置设置时,将更改本地级别以及继承该设置的所有子级别的设置。
1. 打开 IIS 管理器,然后导航至要管理的级别。
2. 在"功能视图"中,双击"页面和控件"。
3. 在"操作"窗格中,单击"注册控件"。
4. 在"控件"页上,选择要更改的控件,然后在"操作"窗格中单击"编辑"。
5. 若要更改标记前缀,请在"编辑自定义控件"对话框的"标记前缀"文本框中,键入一个新的标记前缀。
6. 若要更改命名空间,请在"命名空间"文本框中键入一个新命名空间。
7. 若要更改程序集,请在"程序集"文本框中键入该自定义控件的源文件或程序集的名称,然后单击"确定"。
D、删除自定义控件
如果在应用程序的多个页中将不再使用某一自定义控件,则可以将它删除。可以删除本地级别的自定义控件,也可以删除继承自父级别的自定义错误。
1. 打开 IIS 管理器,然后导航至要管理的级别。
2. 在"功能视图"中,双击"页面和控件"。
3. 在"操作"窗格中,单击"注册控件"。
4. 在"控件"页上,选择要删除的自定义控件,单击"操作"窗格中的"删除",然后单击"是"。