在 IIS 上生成经典 ASP 网站

发布时间 2023-12-27 10:22:24作者: 马超~

场景:在 IIS 上生成经典 ASP 网站

本文档将指导你完成安装 IIS 和配置经典 ASP 网站的过程。 经典 ASP 是服务器端脚本环境,可用于创建和运行动态 Web 应用程序。 借助 ASP,你可以将 HTML 页面、脚本命令和 COM 组件组合在一起,从而创建易于开发和修改的交互式网页。 经典 ASP 是 ASP.NET 的前身,但今天仍在广泛使用。

经典 ASP 服务器配置将 ASP 和 ISAPI 扩展的 IIS 模块添加到默认的 IIS 安装。

先决条件
若要充分利用本教程,你必须具有对运行以下操作系统之一的计算机的访问权限:

Windows Server® 2012
Windows® 8

步骤 1:安装 IIS Web 服务器
你可以使用 Web 平台安装程序 (Web PI) 安装 IIS 和在 IIS 上运行的应用程序。 因为 Web PI 安装了最新版本的可用 Web 平台产品,因此只需单击几下即可下载并安装任何新工具或更新。 若要了解有关 Web PI 的详细信息,请参阅 了解详细信息并安装 Web PI。

通过使用 Windows 用户界面 (UI) 或通过命令行,也可以执行此过程。

使用 UI 在 Windows Server 2012 上安装 IIS
在“开始”页面上,单击“服务器管理器”磁贴,然后单击“确定”。

在“服务器管理器”中,选择“仪表板”,然后单击“添加角色和功能”。

在“添加角色和功能向导”中的“开始之前”页面上,单击“下一步”。

在“选择安装类型”页上,选择“基于角色或功能的安装”,然后单击“下一步”。

在“选择目标服务器” 页上,选择“从服务器池中选择服务器”,选择你的服务器,然后单击“下一步”。

在“选择服务器角色” 页上,选择“Web 服务器 (IIS)”,然后单击“下一步”。

在“选择功能”页上,注意默认情况下安装的预先选择的功能,然后选择以下附加角色服务:

ASP
ISAPI 扩展
单击“下一步”。

在“Web 服务器角色 (IIS)”页面上,单击“下一步”。

在“选择角色服务” 页上,注意默认情况下安装的预先选择的角色服务,然后单击“下一步”。 (注意:只需为静态内容 Web 服务器安装 IIS 8 默认角色服务。)

在“确认安装选择”页上,确认你的选择,然后单击“安装”。

在“安装进度”页上,确认已成功完成 Web 服务器 (IIS) 角色和所需角色服务的安装,然后单击“关闭”。

若要验证是否已成功安装 IIS,请在 Web 浏览器中键入以下内容:

http://localhost

你应该看到默认的 IIS 欢迎页。

使用 UI 在 Windows 8 上安装 IIS
在“开始”页面上,键入控制面板,然后单击搜索结果中的“控制面板”图标。

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

在“Windows 功能”对话框中,单击“Internet Information Services”、注意默认情况下安装的预先选择的功能,然后选择以下附加角色服务:

ASP
ISAPI 扩展
单击 “确定” 。

若要验证是否已成功安装 IIS,请在 Web 浏览器中键入以下内容:

http://localhost

你将看到默认的 IIS“欢迎使用”页面。

使用命令行安装 IIS
在命令提示符处或在脚本中键入以下命令:

Start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-ApplicationDevelopment;IIS-ASP;IIS-ISAPIExtensions;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI

步骤 2:添加经典 ASP 网站
通过以下方法可执行此过程:使用用户界面 (UI)、在命令行窗口中运行 Appcmd.exe 命令、直接编辑配置文件或编写 WMI 脚本。

使用 UI 添加网站
打开 IIS 管理器。

对于 Windows Server 2012,在“开始”页上单击“服务器管理器”磁贴,然后单击“确定”。 在“服务器管理器仪表板”上,单击“工具”菜单,然后单击“Internet Information Services (IIS) 管理器”。
对于 Windows 8,在“开始”页上键入“控制面板”,然后单击搜索结果中的“控制面板”图标。 在“控制面板”屏幕上,依次单击“系统和安全”、“管理工具”和“Internet Information Services (IIS) Manager”。
在“连接”窗格中,右键单击树中的“站点”节点,然后单击“添加网站”。

在“添加网站”对话框中,在“站点名称”框中为你的网站键入一个友好名称。

如果要选择其他应用程序池,而不是“应用程序池”框中列出的应用程序池,请单击“选择”。 在“选择应用程序池” 对话框中,从“应用程序池” 列表中选择一个应用程序池,然后单击“确定” 。

在“物理路径”框中,键入网站的文件夹的物理路径或单击浏览按钮(“...”)来导航文件系统,从而找到该文件夹。

如果你在步骤 5 中输入的物理路径指向远程共享,请单击“连接身份”,以指定有权访问该路径的凭据。 如果不使用特定凭据,请选择“连接身份”对话框中的“应用程序用户(传递身份验证)”选项。

从“类型”列表中为网站选择协议。

“IP 地址”框中的默认值是“全部未分配”。 如果你必须为网站指定静态 IP 地址,请在“IP 地址”框中键入 IP 地址。

在“端口”文本框中键入端口号。

(可选)在“主机头”框中为网站键入主机头名称。

如果无需对站点进行任何更改,并且你希望该网站立即可用,请选中“立即启动网站”复选框。

单击 “确定” 。

使用命令行添加网站
在命令提示符处或在脚本中使用以下语法: (注意:若要使此语法正常工作,必须位于以下目录中,或者路径中具有 目录: %windir%\system32\inetsrv.)

appcmd add site /name:string /id:uint /physicalPath:string /bindings:string

变量 name:string 是名称,变量 id:uint 是要分配给站点的无符号整数。 变量 name:string 和 id:uint 是在 Appcmd.exe 中添加网站时所需的唯一变量。 (注意:如果在未指定绑定和 physicalPath 属性的值的情况下添加网站,则网站将无法启动。)

变量 physicalPath:string 是文件系统中网站内容的路径。

变量 bindings:string 包含用于访问站点的信息,它应采用 的形式 protocol/IP_address:port:host_header。 例如,网站绑定是协议、IP 地址、端口和主机头的组合。 绑定 http/:85: 使网站能够在端口 85 上侦听所有 IP 地址和域名的 HTTP 请求, (也称为主机标头或主机名) 。 另一方面,绑定 将 http/:85:marketing.contoso.com 网站配置为侦听端口 85 上所有 IP 地址和域名 marketing.contoso.com 的 HTTP 请求。

若要添加 ID contoso 为 2 的网站,该网站在 中 c:\contoso具有 内容,并且侦听端口 85 上针对所有 IP 地址和域名的 marketing.contoso.comHTTP 请求,请在命令提示符下键入以下内容,然后按 Enter:

appcmd add site /name: contoso /id:2 /physicalPath: c:\contoso /bindings:http/*:85: marketing.contoso.com

步骤 3:编辑 ASP 应用程序设置
IIS 8 为 ASP 应用程序提供默认设置,但你可以根据需要更改这些设置。 例如,你可以在测试服务器上启用客户端调试,以便在测试通过期间帮助排除问题。

使用 UI 编辑 ASP 应用程序设置
打开 IIS 管理器并导航到要管理的级别。
在“功能视图”中,双击“ASP”。
在“ASP”页上,根据需要编辑设置。
完成操作后,单击“操作” 窗格中的“应用” 。
使用命令行编辑 ASP 应用程序设置
指定默认字符集
若要指定应用程序的默认字符集,请使用以下语法:

appcmd set config /section:asp /codePage:integerRange

变量 integerRange 是默认字符集。 例如,若要将代码页设置为在美国英语和许多欧洲字母表中使用的拉丁字符集,请在命令提示符处键入以下内容,然后按 Enter:

appcmd set config /section:asp /codePage:1252

启用或禁用缓冲
若要启用或禁用 ASP 应用程序输出的缓冲,请使用以下语法:

appcmd set config /section:asp /bufferingOn:true|false

值为 true 启用缓冲,而 false 禁用缓冲。 默认值为 true。

启用或禁用 HTTP 1.1 分块传输编码
若要为 World Wide Web 发布服务启用 HTTP 1.1 分块传输编码,请使用以下语法:

appcmd set config /section:asp /enableChunkedEncoding:true|false

值 启用 true HTTP 1.1 分块传输编码,而 false 禁用 HTTP 1.1 分块传输编码。 默认值为 true。

启用或禁用 HTML 回退
若要启用或禁用 HTML 回退,请使用以下语法:

appcmd set config /section:asp /enableASPHTMLFallback:true|false

如果值为 , true 则发送与请求的 .asp 文件同名的.htm文件(如果存在),而不是 .asp 文件(如果请求已满队列)。 默认值为 true。

启用或禁用父路径
若要启用或禁用相对于当前目录或高于当前目录的路径,请使用以下语法:

appcmd set config /section:asp /enableParentPaths:true|false

值 true 将 ASP 页设置为允许相对于当前目录或当前目录上方的路径。 默认值为 true。

设置客户端连接测试时间间隔
若要设置一个时间间隔,以便在经过此时间间隔后 ASP 将先检查客户端是否仍然处于连接状态,再执行请求,请使用以下语法:

appcmd set config /section:asp /queueConnectionTestTime:timeSpan

timeSpan变量将时间间隔设置为 hh:mm:ss (hh:mm:ss) 之后,ASP 会在执行请求之前检查客户端是否已连接。 默认值为 00:00:03。

设置最大请求实体主体限制
若要指定 ASP 请求的实体主体中所允许的最大字节数,请使用以下语法:

appcmd set config /section:asp /maxRequestEntityAllowed:int

变量 int 表示 ASP 请求正文中允许的最大字节数。 默认值 200000 为 bytes。

设置请求队列长度
若要指定允许放入队列中的并发 ASP 请求的最大数量,请使用以下语法:

appcmd set config /section:asp /requestQueueMax:int

变量 int 表示允许进入请求队列的最大并发 ASP 请求数。 默认值为 3000。

设置请求队列超时
若要指定 ASP 请求在请求队列中可以等待的时长,请使用以下语法:

appcmd set config /section:asp /queueTimeout:timeSpan

变量 timeSpan 表示 ASP 请求可以在请求队列中等待的最长时间 (hh:mm:ss) 。 默认值为 00:00:00。

指定响应缓冲限制
若要控制 ASP 页面在进行刷新之前可写入到响应缓冲区的最大字节数,请使用以下语法:

appcmd set config /section:asp /bufferingLimit:int

变量 int 表示 ASP 缓冲区的最大大小(以字节为单位)。 默认值 4194304 为 bytes。

设置脚本超时
若要指定 ASP 页面允许脚本在终止脚本和将事件写入 Windows 事件日志之前运行的默认时长,请使用以下语法:

appcmd set config /section:asp /scriptTimeout:timeSpan

变量 timeSpan 表示在将事件写入 Windows 事件日志之前 ASP 请求可以运行的最长时间 (hh:mm:ss) 。 默认值为 00:01:30。

指定每个处理器的线程数限制
若要指定 ASP 可以为每个处理器创建的最大工作线程数,请使用以下语法:

appcmd set config /section:asp /processorThreadMax:int

变量 int 表示 ASP 可以创建的每个处理器的最大工作线程数。 默认值为 25。

指定默认区域设置标识符
若要定义 ASP 应用程序的日期、时间和货币的格式设置,请使用以下语法:

appcmd set config /section:asp /lcid:int

变量 int 表示 ASP 应用程序的默认区域设置标识符。 默认值为 0。

启用或禁用应用程序自动重新启动
若要启用或禁用在更改配置设置后自动重新启动 ASP 应用程序这一行为,请使用以下语法:

appcmd set config /section:asp /enableApplicationRestart:true|false

如果值为 , true 则只要配置设置发生更改,ASP 应用程序就会自动重启。 默认值为 true。

启用或禁用行号计算
若要允许或禁止 ASP 计算并存储所执行的每行代码的行号以便在错误报告中提供此行号,请使用以下语法:

appcmd set config /section:asp /calLineNumber:true|false

值 启用 true 行号计算和存储。 默认值为 true。

启用或禁用 COM 组件异常捕获
若要允许或禁止 ASP 页面捕获由 COM 组件引发的异常,请使用以下语法:

appcmd set config /section:asp /exceptionCatchEnable:true|false

值 启用 true COM 组件异常捕获。 如果设置为 false,则 Microsoft 脚本调试器工具不会捕获由正在调试的组件所发出的异常。 默认值为 true。

启用或禁用客户端调试
若要启用或禁用客户端调试,请使用以下语法:

appcmd set config /section:asp /appAllowClientDebug:true|false

值 启用 true 客户端调试。 默认值为 false。

启用或禁用日志错误请求
若要允许或禁止将 ASP 错误写入 Windows 事件日志的应用程序部分,请使用以下语法:

appcmd set config /section:asp /logErrorRequests:true|false

值为 启用 true 日志错误请求。 默认情况下,将 ASP 错误写入客户端浏览器和 IIS 日志。 默认值为 true。

启用或禁用将 ASP 错误记录到 Windows 事件日志中的功能
若要允许或禁止在服务器上进行 ASP 调试,请使用以下语法:

appcmd set config /section:asp /appAllowDebugging:true|false

一个 true 值,可为 ASP 应用程序启用服务器端调试。 默认值为 false。

匿名运行 On End 函数
若要允许或禁止 SessionOnEnd 和 ApplicationOnEnd 全局 ASP 函数以匿名用户身份运行,请使用以下语法:

appcmd set config /section:asp /runOnEndAnonymously:true|false

一个 true 值,使 SessionOnEnd 全局 ApplicationOnEnd ASP 函数能够以匿名用户身份运行。 默认值为 true。

指定脚本错误消息
若要指定在特定调试错误未发送到客户端时要向浏览器发送的错误消息,请使用以下语法:

appcmd set config /section:asp /scriptErrorMessage:string

变量 string 表示当特定调试错误未发送到客户端时发送到浏览器的错误消息。 默认值为“处理 URL 时服务器出错。 请与系统管理员联系”。

启用或禁用向浏览器发送错误的功能
若要允许或禁止除了将调试详细信息(文件名、错误、行号和描述)记录到 Windows 事件日志中以外还将其写入客户端浏览器,请使用以下语法:

appcmd set config /section:asp /scriptErrorSentToBrowser:true|false

值 允许 true 将调试特定内容写入客户端浏览器。 默认值为 false。

指定默认脚本语言
若要指定 Web 服务器上运行的所有 ASP 应用程序的默认脚本语言,请使用以下语法:

appcmd set config /section:asp /scriptLanguage:string

变量 string 表示默认脚本语言。 默认值为 VBScript。

指定缓存目录路径
若要指定 ASP 用来在内存中的缓存发生溢出后存储已编译的 ASP 模板的目录名称,请使用以下语法:

appcmd set config /section:asp /diskTemplateCacheDirectory:string

变量 string 表示缓存目录路径。 默认值为 %windir%\system32\inetsrv\ASP Compiled Templates。

启用或禁用类型库缓存
若要启用或禁用对类型库的缓存,请使用以下语法:

appcmd set config /section:asp /enableTypelibCache:true|false

值 启用 true 类型库的缓存。 默认值为 true。

设置要存储的已编译 ASP 模板的最大数量
若要设置可以存储的已编译 ASP 模板的最大数量,请使用以下语法:

appcmd set config /section:asp /maxDiskTemplateCacheFiles:int

变量 int 表示要存储的最大已编译 ASP 模板数。 默认值为 2000。

设置要存储的已编译 ASP 模板的最大数量
若要设置要缓存的预编译脚本文件的最大数量,请使用以下语法:

appcmd set config /section:asp /scriptFileCacheSize:int

变量 int 表示要缓存的预编译脚本文件的数目。 如果设置为 0,则不缓存任何脚本文件。 如果设置为 4294967295,则缓存所有请求的脚本文件。 默认值为 500。

设置要缓存的脚本引擎的最大数量
若要设置 ASP 页面将缓存在内存中的脚本引擎的最大数量,请使用以下语法:

appcmd set config /section:asp /scriptEngineCacheMax:int

变量 int 表示缓存的最大脚本引擎数。 默认值为 250。

启用或禁用 COM+ 并行程序集
若要启用或禁用 COM+ 并行程序集,允许 ASP 应用程序指定要使用的系统 DLL 版本或经典 COM 组件,请使用以下语法:

appcmd set config /section:asp /appServiceFlags:true|false

值为 true 将启用 COM+ 并行程序集。 默认值为 false。

启用或禁用 COM+ 跟踪程序
若要启用或禁用 COM+ 跟踪程序,请使用以下语法:

appcmd set config /section:asp /enableTypelibCache:true|false

值为 true 启用 COM+ 跟踪器,使管理员或开发人员能够调试 ASP 应用程序。 默认值为 false。

启用或禁用多线程环境
若要允许或禁止 ASP 在多线程环境中运行,请使用以下语法:

appcmd set config /section:asp /executeInMta:true|false

值 true 使 ASP 能够在多线程环境中运行。 默认值为 false。

启用或禁用线程模型检查
若要允许或禁止 IIS 检查你的应用程序创建的任何组件的线程模型,请使用以下语法:

appcmd set config /section:asp /trackThreadingModel:true|false

值为 true 可启用线程模型检查。 默认值为 false。

指定 COM+ 分区 ID
若要指定 COM+ 分区的全局唯一标识符 (GUID),请使用以下语法:

appcmd set config /section:asp /partitionID:string

变量 string 表示 COM+ 分区的 GUID。 默认值为 00000000-0000-0000-0000-000000000000。

备注

还必须将 appServiceFlags 标志设置为 true。

指定 COM+ 应用程序
若要指定 COM+ 应用程序的名称,请使用以下语法:

appcmd set config /section:asp /sxsName:string

变量 string 表示 COM+ 应用程序的名称。

备注

还必须将 appServiceFlags 标志设置为 true。

启用或禁用 COM+ 分区
若要启用或禁用 COM+ 分区,请使用以下语法:

appcmd set config /section:asp /appServiceFlags:true|false

值为 true 可启用 COM+ 分区,该分区可用于隔离应用程序在其自己的 COM+ 分区中。 默认值是 false秒。

备注

如果设置为 true,则还必须为 partitionID 属性设置值。

启用或禁用会话状态
若要启用或禁用 ASP 应用程序的会话状态持续性,请使用以下语法:

appcmd set config /section:asp /allowSessionState:true|false

值为 true 可启用会话状态持久性。 默认值为 true。

设置并发会话的最大数量
若要设置 ASP 所允许的并发会话的最大数量,请使用以下语法:

appcmd set config /section:asp /max:int

变量 int 表示并发会话的最大数目。 默认值为 -1。

启用或禁用安全会话 ID
若要允许或禁止在通过安全会话通道分配会话 ID 时将其作为安全 Cookie 发送,请使用以下语法:

appcmd set config /section:asp /keepSessionIdSecure:true|false

值为 true 可启用安全会话 ID。 默认值为 true。

设置会话超时
若要指定在上次发出与某个会话对象关联的请求后将保留该对象的默认时长,请使用以下语法:

appcmd set config /section:asp /timeout:timeSpan

变量 timeSpan 表示 (hh:mm:ss) 在发出与该对象关联的最后一个请求之后维护会话对象的最长时间。 默认值为 00:20:00。