ASP <asp>

概述

<asp> 元素指定 ASP 应用程序的配置设置。 其中包括以开发人员为中心的配置设置,例如控制调试和错误返回设置的属性。 <asp> 元素还包括用于控制应用程序使用的字符集、应用程序的脚本语言以及应用程序是否启用错误日志记录的属性。

<asp> 元素还可以包含为站点或应用程序配置 COM+、ASP 缓存、缓冲限制和会话状态的元素。

兼容性

版本 说明
IIS 10.0 <asp> 元素在 IIS 10.0 中未进行修改。
IIS 8.5 <asp> 元素在 IIS 8.5 中未进行修改。
IIS 8.0 <asp> 元素在 IIS 8.0 中未进行修改。
IIS 7.5 <asp> 元素未在 IIS 7.5 中进行修改。
IIS 7.0 <asp> 元素是在 IIS 7.0 中引入的。
IIS 6.0 <asp> 元素及其子元素替换 IIS 6.0 IIsWebService 对象中的 ASP 相关属性。

安装

要在 Web 服务器上支持和配置 ASP 应用程序,必须安装 ASP 模块。 要安装 ASP 模块,请遵循以下步骤。

Windows Server 2012 或 Windows Server 2012 R2

  1. 在任务栏上,单击 “服务器管理器”。
  2. 在“服务器管理器”中,单击“管理”菜单,然后单击“添加角色和功能”。
  3. 在“添加角色和功能”向导中,单击“下一步”。 选择安装类型,然后单击“下一步”。 选择目标服务器,然后单击“下一步”。
  4. 在“服务器角色”页上,依次展开“Web 服务器 (IIS)”、“Web 服务器”和“应用程序开发”,然后选择“ASP”。
    Screenshot that shows A S P selected for Windows Server 2012.
  5. 如果出现“是否添加 ASP 所需的功能?”对话框,请单击“添加功能”。 (仅当尚未在服务器上安装 ISAPI 扩展角色服务时,才会显示此页面。)
  6. 在“服务器角色”页上,单击“下一步”。
  7. 在“选择功能”页上,单击“下一步”
  8. “确认安装选择”页上,单击“安装”
  9. 在“结果” 页面中单击“关闭”

Windows 8 或 Windows 8.1

  1. 在“开始”屏幕上,将指针一直移动到左下角,右键单击“开始”按钮,然后单击“控制面板”

  2. 在“控制面板”中,单击“程序与功能”,然后单击“打开或关闭 Windows 功能”。

  3. 依次展开“Internet 信息服务”、“万维网服务”和“应用程序开发功能”,然后选择“ASP.NET”。
    Screenshot that shows A S P selected for Windows 8.

    注意

    如果尚未安装 ISAPI 扩展角色,则会选择该角色。

  4. 单击“确定”。

  5. 单击“关闭” 。

Windows Server 2008 或 Windows Server 2008 R2

  1. 在任务栏上,单击“开始”,指向“管理工具”,然后单击“服务器管理器”。
  2. 在“服务器管理器”层次结构窗格中,展开“角色”,然后单击“Web 服务器(IIS)”。
  3. 在“Web 服务器(IIS)”窗格中,滚动到“角色服务”部分,然后单击“添加角色服务”。
  4. 在“添加角色服务向导”的“选择角色服务”页,选择“ASP”。
    Screenshot that shows A S P selected for Windows Server 2008.
  5. 如果出现“添加 ASP 所需的角色服务”对话框,请单击“添加所需的角色服务”。 (仅当尚未在服务器上安装 ISAPI 扩展角色服务时,才会显示此页面。)
    Screenshot that shows the Add Role Services dialog box.
  6. 在“选择角色服务”页上,单击“下一步”。
  7. “确认安装选择”页中,单击“安装”
  8. 在“结果” 页面中单击“关闭”

Windows Vista 或 Windows 7

  1. 在任务栏上,单击“开始”,然后单击“控制面板”。
  2. 在“控制面板”中,单击“程序与功能”,然后单击“打开或关闭 Windows 功能”。
  3. 依次展开“Internet Information Services”、“万维网服务”和“应用程序开发功能”。
  4. 选择“ASP”,然后单击“确定”
    Screenshot of the Windows Features dialog box. A S P is selected under the Application Development Features node.

操作方式

如何为站点或应用程序配置 ASP 设置

  1. 打开 Internet Information Services (IIS) 管理器:

    • 如果使用的是 Windows Server 2012 或 Windows Server 2012 R2:

      • 在任务栏上,单击“服务器管理器”,单击“工具”,然后单击“Internet Information Services (IIS)管理器”
    • 如果使用的是 Windows 8 或 Windows 8.1:

      • 按住 Windows 键,按字母 X,然后单击“控制面板”。
      • 单击“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。
    • 如果使用的是 Windows Server 2008 或 Windows Server 2008 R2:

      • 在任务栏上,单击“开始”,指向“管理工具”,然后单击“Internet Information Services (IIS)管理器”
    • 如果使用的是 Windows Vista 或 Windows 7:

      • 在任务栏上,单击“开始”,然后单击“控制面板”。
      • 双击“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。
  2. 在“连接”窗格中,展开服务器名称,展开“站点”,然后导航到要配置的网站或 Web 应用程序。

  3. 在站点或应用程序“主页”窗格中,双击“ASP”。
    Screenshot that shows the Default Web Site Home pane. A S P is selected.

  4. 在“ASP”窗格中,配置所需的设置,然后单击“操作”窗格中的“应用”。
    Screenshot that shows the A S P pane in the I I S Manager.

配置

使用 ApplicationHost.config 文件,可以在服务器级别配置 <asp> 元素。 但默认情况下,无法在站点级别或应用程序级别配置 <asp> 元素。

特性

属性 说明
appAllowClientDebug 可选布尔属性。 指定是否启用客户端调试。 默认值为 false
appAllowDebugging 可选布尔属性。 指定是否启用服务器端调试。 默认值为 false
bufferingOn 可选布尔属性。 指定是否启用 ASP 应用程序输出的缓冲。 默认值为 true
calcLineNumber 可选布尔属性。 指定 ASP 是否计算并存储每个执行的代码行号,以便提供错误报告中的数字。 默认值为 true
codePage 可选 uint 属性。 指定 ASP 应用程序的默认字符集。 此值是 0 到 2147483647 范围内的整数。 例如,值 1252 将默认字符集设置为用于美国英语和许多欧洲字母表的拉丁字符集。 默认值为 0
enableApplicationRestart 可选布尔属性。 指定每当更改配置设置时,ASP 应用程序是否自动重启。 默认值为 true
enableAspHtmlFallback 可选布尔属性。 指定是否将与所请求的 .asp 文件同名的 .htm 文件(如果存在)发送到客户端,而不是发送到 .asp 文件。 如果请求由于完整请求队列而被拒绝,则会出现这种情况。 默认值为 true
enableChunkedEncoding 可选布尔属性。 指定是否启用 HTTP 1.1 分块传输编码。 默认值为 true
enableParentPaths 可选布尔属性。 指定 ASP 页是否允许相对于当前目录或高于当前目录的路径。 默认值为 false
errorsToNTLog 可选布尔属性。 指定是否启用将 ASP 错误日志记录到 Windows 事件日志。 默认值为 false
exceptionCatchEnable 可选布尔属性。 指定是否启用 COM 组件异常捕获。 如果设置为 false,则 Microsoft 脚本调试器工具不会捕获由正在调试的组件所发出的异常。 默认值为 true
lcid 可选 uint 属性。 指定 ASP 应用程序的默认区域设置标识符。 此值是 0 到 2147483647 范围内的整数。 默认值为 0
logErrorRequests 可选布尔属性。

指定 ASP 错误是否默认写入客户端浏览器和 IIS 日志。

默认值为 true
runOnEndAnonymously 可选布尔属性。 指定 SessionOnEnd 和 ApplicationOnEnd 全局 ASP 函数是否作为匿名用户运行。 默认值为 true
scriptErrorMessage 可选的字符串属性。 指定在未将特定调试错误发送到客户端时将发送到浏览器的错误消息。 默认值为 An error occurred on the server when processing the URL. Please contact the system administrator
scriptErrorSentToBrowser 可选布尔属性。 指定是否启用对客户端浏览器的调试细节的写入。 默认值为 false
scriptLanguage 可选的字符串属性。 指定在 Web 服务器上运行的所有 ASP 应用程序的默认脚本语言。 默认值为 VBScript

子元素

元素 说明
cache 可选元素。

指定 ASP 缓存设置。
comPlus 可选元素。

指定 COM+ 设置。
limits 可选元素。

指定各种 ASP 属性的限制。
session 可选元素。

指定 ASP 会话状态设置。

配置示例

以下配置示例为名为 Contoso 的站点上的 ASP 应用程序启用缓冲和会话状态,并禁用同一站点的父路径。

<location path="Contoso">
   <system.webServer>
      <asp enableParentPaths="false" bufferingOn="true">
         <session allowSessionState="true" />
      </asp>
   </system.webServer>
</location>

代码示例

以下代码为名为 Contoso 的站点上的 ASP 应用程序启用缓冲和会话状态,并禁用同一站点的父路径。

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/asp /enableParentPaths:"False" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/asp /bufferingOn:"True" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/asp /session.allowSessionState:"True" /commit:apphost

注意

使用 AppCmd.exe 配置这些设置时,必须确保将 commit 参数设置为 apphost。 这会将配置设置提交到 ApplicationHost.config 文件中的相应位置部分。

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();

         ConfigurationSection aspSection = config.GetSection("system.webServer/asp", "Contoso");
         aspSection["enableParentPaths"] = false;
         aspSection["bufferingOn"] = true;

         ConfigurationElement sessionElement = aspSection.GetChildElement("session");
         sessionElement["allowSessionState"] = true;

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim aspSection As ConfigurationSection = config.GetSection("system.webServer/asp", "Contoso")
      aspSection("enableParentPaths") = False
      aspSection("bufferingOn") = True
      Dim sessionElement As ConfigurationElement = aspSection.GetChildElement("session")
      sessionElement("allowSessionState") = True
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST/Contoso");
aspSection.Properties.Item("enableParentPaths").Value = false;
aspSection.Properties.Item("bufferingOn").Value = true;
var sessionElement = aspSection.ChildElements.Item("session");
sessionElement.Properties.Item("allowSessionState").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST/Contoso")
aspSection.Properties.Item("enableParentPaths").Value = False
aspSection.Properties.Item("bufferingOn").Value = True
Set sessionElement = aspSection.ChildElements.Item("session")
sessionElement.Properties.Item("allowSessionState").Value = True

adminManager.CommitChanges()