远古魔力 | 在Windows 10和Azure App Service里跑上世纪的ASP
ASP(沒有.NET) 即 Active Server Pages (動態服務器頁面)是一項由微軟公司在1996年推出的技術,能夠在IIS中運行動態網站。也許許多90后及千禧一代程序員并沒有聽說過它,但很多老程序員曾經用ASP編寫了諸如DVBBS論壇等在上古時期就開辟了中國互聯網第一片天下的網站。
我有幸在初中時候使用 ASP 3.0 構建了第一版的個人博客,從2003年運行至2007年淘汰,隨后便被如今的ASP.NET所取代。
我的第一版ASP個人網站(2003-2007)
如今主流網站開發技術早已難覓ASP的蹤跡,然而這并不妨礙我們的情懷。我們來看看如何讓這個上古之神在現代化的平臺上復活。
一些歷史知識
ASP和它的繼任者ASP.NET完全不同。ASP使用VBScript/JScript(不是JavaScript)腳本引擎在服務器端執行,并返回生成的HTML。而ASP.NET不管是上古時代的WebForm還是現代的MVC,都需要編譯后由.NET運行時執行。ASP的開發工具也并非一定要 Visual Studio,而是任意文本編輯器,當年較常用的是 Edit Plus(那時候還沒有notepad++)。因此我們要復活ASP并不需要安裝特殊的開發工具,VSCode,甚至notepad++都夠。
在 Windows 10 上運行 ASP
由于ASP太古老,Windows 10 的IIS安裝并不默認啟用ASP的支持,因此我們需要手動找到,并開啟它。
運行appwiz.cpl,然后在Windows features的IIS服務中勾選ASP。
配置完成后,到IIS的應用程序池里,新建一個專用于ASP環境的應用程序池。
將 .NET CLR version 設置為 No Managed Code。這是因為ASP不是ASP.NET,不需要CLR去執行任何代碼。
Managed pipleline mode 設置為 Classic。進一步脫離IIS與ASP.NET管線的關系。(這部不操作也沒事,但是為了盡可能的模擬懷舊環境,也就讓它Classic了)
然后進入該應用程序池的 Advanced Settings
將 Enable 32-Bit Applications 設置為 True。這是由于,在上古時期,ASP還不知道電腦竟然能有64位,VBScript這種腳本引擎只能作為32位程序去運行。
接下來,在本地磁盤新建一個空文件夾,然后配置為IIS下的一個網站或應用程序(例如 helloasp 對應 D:\Workspace\OldSchool)。
并將它的應用程序池設置為 Classic ASP
至此,IIS的設置全部完成。
準備一頁測試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的在天之靈領盒飯的時候都沒想到今天自己還能被VSCode寫一遍:
回到IIS,嘗試訪問剛才配置的這個網站。應該能看到ASP成功運行:
萬一看不到,在URL后手工補全default.asp試試,或者可以檢查一下IIS的默認文檔設置是否正確:
在 Azure App Service 上跑 ASP
Azure App Service 雖然官方宣傳里并沒有說它支持ASP,但其實是可以的!但一個前提是,為了運行ASP,你的App Service Plan環境必須是Windows。雖然大家可以去挑戰Linux+Docker去跑ASP,但我不希望你們進ICU。
在 App Service 的網站屬性中進入?Configuration
在 General settings 中,將 Platform 改為 32 Bit,Managed pipeline version 改為 Classic(和之前IIS的設置一樣)盡管我們無法在Stack中找到ASP,但保留.NET 4.7不會有任何影響。
如果你喜歡,可以把HTTP Version改成 2.0。ASP的在天之靈死也沒想到如今還能上云,還見到了2.0版的HTTP協議。
運行看看,完全沒問題:
總結
以上是生活随笔為你收集整理的远古魔力 | 在Windows 10和Azure App Service里跑上世纪的ASP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计量经济学(三)--假设检验
- 下一篇: java信息管理系统总结_java实现科