Quantcast
Channel: normalian blog
Viewing all articles
Browse latest Browse all 237

Classic ASP アプリを2013年らしい環境で動かすには?

$
0
0

今回は、One ASP.NET Advent Calendar 2013 8日目の記事だ。すでに様々な記事が One ASP.NET Advent Calendar に登録されているため、是非こちらも参照して頂きたい。
さて、今回のテーマは最新とは程遠い Classic ASP(なんなら ASP".NET"ではない。。。)であり、名前の通りかなり Classic な技術ではあるが、現時点でも様々なところで利用されている技術だ。既存の Classic ASPを動作させる環境としては Windows Server 2003 R2(32bit)+IIS 6.0 以下の環境が多いと思う。

Web サイトで Classic ASPを稼働させる

IIS 8.0 & Windows Server 2012 の環境(2013年12月現在)である Windows Azure Webサイトで Classic ASPを動作させるのは難しくない。管理ポータルから Web サイトを作成した後、以下の画像を参考に「構成」タブから「マネージ パイプライン モード」を「クラシック」にして設定を保存することで、簡易的な実行環境は構築できる*1

マネージ パイプラインモードについては以下のリンクを参照してほしい。

次に、「ダッシュボード」タブから画面下部の WebMatrixボタンを押下して WebMatrixを起動してサンプルを作成する。WebMatrixASP.NET Web Page, PHP, Node.js 等も編集可能だが、もちろん Classic ASPのアプリケーションを編集することも可能だ。管理ポータル越しに Web サイトを WebMatrixから起動し、以下の画面を参考に Default.aspという名前の Classic ASPファイルと Global.asa ファイルをトップに追加する。

更に、以下の様にコードを追記する。

<%@ Language="VBScript" %><!DOCTYPE html><htmllang="ja"><head><metacharset="utf-8" /><title>Classic ASP on Web サイト</title></head><body><h2>セッション上の値</h2><%= Session("MyMessage") %><br /><h2>環境変数一覧</h2><%For Each name In Request.ServerVariables                 Response.Write name& " = "& Request.ServerVariables(name) & "<br />"             Next        %></body></html>
  • Global.asa
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">Sub Application_OnStart EndSubSub Application_OnEnd EndSubSub Session_OnStart         Session("MyMessage")="メッセージ at Global.asa"EndSubSub Session_OnEnd EndSub</SCRIPT>

上記のソースコードを Web サイト上に配置することで、以下の様に Web サイト上の環境変数一覧を表示できる。

一見簡単に動作できる様に見えるが、細かな挙動が過去のIIS(主に IIS 6.0以下になるだろうが・・・)とは異なるため既存の Classic ASPアプリケーションがうまく動作しないこともある。その場合は次の仮想マシン編を参照して頂きたい。

仮想マシン上(Windows Server 2012 R2)で Classic ASPを稼働させる

今までは Web サイト上で動作させていたが、IIS 7.0 以降で Classic ASPを動作させる場合には以下の様な考慮が必要になる。参考になる情報がIIS 7.0 および IIS 7.5 上で Classic ASP アプリケーションを実行するに記載されているが、主要な留意点を以下に記載する。

  • Classic ASPIIS 7.0 以降では既定ではインストールされないため、役割を追加時に設定が必要(設定は以下の画像を参考のこと)


  • 失敗した要求トレースを使用して Classic ASPエラーをブラウザ側でトラブルシューティングができないため、IIS Managerで設定が必要(設定は以下の画像を参考のこと)

  • Classic ASPの親パスは既定で無効であるため、IIS Managerで設定が必要(設定は以下の画像を参考のこと)

  • 仮想ディレクトリがアプリケーションとして認識されない(Global.asa がディレクトリ毎に実行されない)ため、IIS Managerで設定が必要(設定は以下の画像を参考のこと)

上記を実施すれば、仮想マシン上で Classic ASPを実行する環境が整うはずだ。他にも以下の情報が参考になるので、必要な場合に参照頂きたい。

*1:デフォルトの設定である「統合」のままでも Classic ASPは動作するが、以下の記事でも記載されている様に、IISがアプリケーションを動作させる機構が異なる点に注意が必要だ(「統合」モードでアプリケーションがそのまま動作する場合、「統合」モードにしていただいても問題ない)


Viewing all articles
Browse latest Browse all 237

Trending Articles