【クラシックASP】IIS 10にレガシーASPシステムを移行する場合のポイント

サーバ・ネットワーク
スポンサーリンク

今回はIIS 5.0で動いている「クラシックASP」+「VBScript」+「COM+」を使ったWebシステムをIIS 10環境にそのまま移行をさせてみたので、その作業をする際のポイントを紹介します。

移行先Windows Server及びIIS 10で実施する作業内容と解説

以下の項目では、古いIIS環境から最新のIIS 10環境にクラシックASPで構築されたWebシステムを丸っと移行する場合に必要になる作業や設定などを簡単な解説も交えて紹介していきます。

VB6ランタイムのインストール

これは、VB6で作られたDLLなどをCOM+(Component Object Model plus)でOSに組み込んでクラシックASPから呼び出して使用しているようなシステムでは必要になります。
未だにVB6で作られたシステムや実行ファイルが現役の会社は実は非常に多く、Microsoftからも未だに公式にランタイムが提供されています。

普通に考えるとMicrosoftから公式に提供されているランタイムをそのままインストールすれば良さそうですが、Microsoftが提供しているVB6のランタイムは必要最低限の環境しか含まれておらず、古いシステムを最新のWindows Server環境で動かそうとした場合に、必要なDLLなどが足らずにまともに動かない可能性もあります。
よって、当ブログではMicrosoft公式のランタイムではなく、以下のランタイムを紹介しておこうと思います。

Visual Basic 6.0 SP6 ランタイムファイル -Vector-

Microsoftが提供しているVB6ランタイムに含んでいるファイル以外にも、古いシステムを動かすために必要になるその他のDLLなどもまとめてインストールしてくれます。

 

IISインストール時の有効化項目

Windows Serverでは、OSをインストールした直後はIISはインストールされておらず、サーバーマネージャーの「サーバーの役割と機能の追加」からIISをインストールします。
「サーバーの役割と機能の追加」では、IISをインストールする際にIISの様々な機能から必要な機能を指定してインストールするのですが、その際に、クラシックASPを動作させる場合に必要になる選択項目を紹介します。

[Webサーバー(IIS)]→[Webサーバー]→[アプリケーション開発]配下の以下の項目

・ASP
・サーバー側インクルード

ASP」は必須ですが、「サーバー側インクルード」もおそらく利用しているシステムは多いと思うので、チェックを付けておいた方が良いです。
これ以外の項目は必要によって付けてください。
※当方の環境では.NETアプリケーションも共存させる想定なので、.NETアプリケーション用の項目もチェックを付けています。

 

COM+の登録

前述した「COM+」を使ったシステムを移行する場合は旧環境と同じように「コンポーネントサービス」から登録してください。
移行元があまりに古い環境だと、現在のCOM+の設定項目と若干異なるのですが、主要な設定項目は同じなので、旧環境の設定と比較しながら同じ設定を入れてください。

 

MS DTCの設定

旧環境で「MS DTC」を利用しているのであれば同様に設定が必要です。
新しいWindowsServer環境でも前述の「COM+」と同様に「コンポーネントサービス」から設定が可能です。

[コンポーネントサービス]→省略→[Distributed Transaction Coordinator]→[ローカルDTC]を右クリックして「プロパティ」を選択。

 

hostsファイルを使用した静的な名前解決設定

前述の「MS DTC」では、クライアントとサーバー間(APサーバーとDBサーバー間)では、相互に「名前解決」ができる必要があります。
APサーバーとDBサーバーが異なるセグメントに居る場合は、内部DNSに互いのホスト名を登録しておくか、「hostsファイル」に相手のホスト名を登録しておく必要があります。
手っ取り早いので、hostsファイルに登録しておくと良いでしょう。


尚、名前解決ができないサーバー間で「MS DTC」を利用した処理を実施しようとした場合は、
指定されたトランザクション コーディネーターで新規トランザクションを参加できません
といったエラーが発生します。

 

32ビット用ODBCデータソースの設定

移行対象のシステムがODBCを利用してデータベースと接続している場合は、「ODBCデータソース」の登録が必要です。
尚、今回作業をしたWindows Server 2016では、64ビット用と32ビット用それぞれの「ODBCデータソース」の設定画面が用意されているが、クラシックASPやVB6が使用できるのは32ビット用のODBCのみなので、旧環境からの移行だけが目的であれば、32ビット用の登録だけで結構です。

IISの各設定

IIS 10環境でクラシックASPを使う場合に必要となるIISの仮想ディレクトリ等の設定をいくつか紹介します。

対象システム専用のアプリケーションプールを作成

クラシックASPシステムの移行に関わらず、アプリケーションプールを実際のアプリケーションごとに分けて用意するのは、異なるアプリケーション間での干渉を避ける為に必要なことですが、今回のクラシックASPでの動作環境構築にあたっては、クラシックASPの動作環境固有の設定があるため、尚更アプリケーションプールは専用のものを新たに作成します。

アプリケーションプールの「詳細設定」

アプリケーションプールの「詳細設定」の項目では、以下の設定を入れてください。

32ビットアプリケーションの有効化:True
マネージパイプラインモード:Classic

対象アプリケーションの「ASP」機能の設定

対象アプリケーションの設定項目の「ASP」を選択します。

「ASP」の設定で以下の指定をします。

親パスを有効にする:True

最後に

今回紹介したポイントを参考にして頂ければ、最新のIIS 10環境下でクラシックASPで構築されたWebシステムが動くと思います。

下手したら20年近く昔に構築したかも知れない化石の様なシステムが、動作保証は無いにしろ、最新のWindows Server環境でも同じように動かすことができるということは、改めて考えるとすごいことだと思います。
ただ、例えばVBScriptで言えばブラウザでの動作は今後更に困難になることはわかりきっておりますし、今回紹介した記事も古いシステムの一時的な延命でしかないということを思うと空しくもあります。

私の職場でもそうですが、早く皆さまのシステムが.NETやその他の新しい環境でリプレースできることを願っております。
今回も読んでいただきましてありがとうございました。
それでは皆さまごきげんよう。

↓レガシーなWebシステムでも最新のブラウザ「Edge」のIEモードで使えば動くんです。
是非以下の記事も読んでみてください。

Chromium版Edgeで接続先を指定してIEモードを有効にする全手順
クラシックASP+VBScriptなどで構築した古いWebシステムを新しいブラウザで動かすには、これまでIEしか選択肢が無かったが、新しい「Microsoft Edge」ではIEモード実装され古いWebシステムも動作します。 その手順を紹介します。