ASP 是微软的一项古老技术,甚至在 .NET 诞生之前。我在 2003 年使用 ASP 3.0 创建了我的第一个个人博客。如今,很难在 Internet 上找到仍然活跃的 ASP Web 应用程序。但我们仍然可以在今天的 Windows 10 甚至 Azure 中恢复 1996 年的经典 ASP。
一些历史
ASP 和它的后继者 ASP.NET 是完全不同的。ASP 使用 VBScript/JScript(不是 JavaScript)脚本引擎在服务器端执行并返回生成的 HTML。另一方面,ASP.NET,无论是古老的 WebForm 还是现代的 MVC,都需要由 .NET 运行时编译和执行。ASP 的开发工具不必是 Visual Studio,任何文本编辑器都可以胜任。所以我们今天不需要安装专门的开发工具来编写 ASP 代码。VSCode,甚至记事本都可以完成这项工作。
在 Windows 10 上运行 ASP
因为 ASP 太老了,Windows 10 中的 IIS 默认不开启 ASP 支持,所以我们需要手动找到并开启。
运行“ appwiz.cpl ”,在Windows features/Internet Information Services下选择“ ASP ”
转到应用程序池并为名为Classic ASP的 ASP 环境创建一个新的应用程序池
将.NET CLR 版本设置为无托管代码。这是因为 ASP 不是由 .NET 执行的,因此不需要存在 CLR。
将托管管道模式 设置为Classic。(可选,但它是使 IIS 与 ASP.NET 管道更加“解耦”的更 ASPish 方式)。
输入此应用程序池的高级设置
将启用 32 位应用程序 设置为True。因为在 ASP 时代,计算机不是 64 位架构,VBScript 引擎只能运行在 32 位。
现在,在本地驱动器中创建一个空文件夹,将其设置为 IIS 下的应用程序或网站。例如:helloasp 指向D:\Workspace\OldSchool
并将其应用程序池设置为使用Classic ASP。
准备一个 ASP 测试页
在网站的根目录下创建一个名为“ default.asp ”的新文件。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Hello ASP</title>
</head>
<body>
<% Response.Write("I am back!") %>
</body>
</html>
在这段代码中,<% Response.Write("I am back!") %>
是一个用于输出内容的 ASP 代码。
有趣的是,ASP 做梦也想不到有一天它会用 Visual Studio Code 编写:
回到 IIS 并浏览我们的网站,您将看到这个 ASP 页面正在运行:
如果没有,请检查“default.asp”是否在 IIS 的默认文档设置中。
在 Azure 应用服务中运行 ASP
Azure App Service 实际上支持 ASP,虽然官方资料中没有提到。但一个前提是,为了运行 ASP,您的 App Service Plan 环境必须是 Windows。
在应用服务设置中输入配置 。
在General settings下,将Platform 设置为32 Bit,并将Managed pipeline version 更改为Classic。虽然 ASP 不在 Stack 列表中,但将其保留为 .NET 4.7 不会有任何影响。
如果您愿意,可以将HTTP 版本 更改为使用 2.0。ASP 永远不会看到自己在云 PaaS 系统上运行在 HTTP2 下,有趣!