未だに使われるところでは使われているClassic ASP(Active Server Pages)。
VBScriptやJScriptでサーバーサイド処理を記述して、IIS上で動くWebアプリを作ることができる技術です。
2000年以降一度もアップデートされてない枯れた技術ですが、Windows10でも実行環境を整えることができるのでその手順を紹介します。
IISの有効化
IIS(Internet Information Services)はWindowsに標準搭載されているWebサーバ。
ASPはこれじゃないと動かせないので(頑張ればApacheでも動かせるらしい)、まずはIISを有効化する。
コンパネの「プログラムと機能」から「Windows機能の有効化または無効化」を選択。
「インターネットインフォメーションサービス」をにチェックを入れる。
下層の機能にも勝手にチェックが入るが「ASP」にはチェックが入らないので自分で入れる。
OKを押す。
有効化された。
IISを有効化するとデフォルトのWebサイトが構成されるので、ブラウザで「http://localhost/」にアクセスする。
IISが立ち上がってることが確認できた。
(他のアプリとかが80番ポート使ってるとうまくいかないかも)
Classic ASPを動かす
デフォルトページの階層が「C:\inetpub\wwwroot\」なので、ここに適当なASPファイルを作る。
<html>
<body>
<%
Response.Write "<p>Hello Classic ASP!</p>"
%>
<p><%= Now() %></p>
</body>
</html>
「http://localhost/index.asp」にアクセス
これで最低限のASPの実行環境は整う。
IISの設定
ただし、動かしたいASP Webアプリの構成によってはいくつか追加でIISの設定をしないと動かない場合がある。
IISマネージャーを起動する。
64bit環境で32bitの外部コンポーネント(DLL)を呼び出している場合
Server.CreateObject()のところで、
「Microsoft VBScript 実行時 エラー '800a01ad' ActiveX コンポーネントはオブジェクトを作成できません。」
というエラーがでる。
「アプリケーション プール」を選択しサイトに指定している「アプリケーション プール」を選択。
右クリックから「詳細設定」を開き、32ビットアプリケーションの有効化を「True」にする。
32bit環境で動かしている場合は設定の必要はない。
ドキュメントルートより上位の階層のファイルを読み込んでいる場合
デフォルトの設定では、ドキュメントルートより上位階層のディレクトリを参照することができない。
ドキュメントルートより上位階層のインクルードファイルなどを読み込んでいるWebアプリの場合、これを許可する必要がある(セキュリティ的によろしくないので本来は仮想ディレクトリで参照したほうがよい)。
サイトを選択し「ASP」を選択する。
ASPの構成プロパティが表示されるので、その中から「親パスを有効にする」を選び「True」にする。
ちなみに、Windows Server2016でも「役割と機能の追加」から同じ手順で実行環境を用意できます。
まだまだ、長生きしそうですね…。