ASP.NET 2.0 アプリケーションをIIS 10に移行する場合のポイントやIIS基礎知識

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

実務でWindows Server 2003 で稼働しているASP.NET 2.0アプリケーションを、IIS 10.0(Windows Server 2019)へ移行したのですが、その際に行った作業をまとめておきます。

また、一般的なIIS上でのアプリケーション実行環境の作成に関する基礎知識も併せて紹介していきます。

尚、当記事では、Windows Server 2019 の初期セットアップ自体は済ませている前提で、それ以降の作業を紹介していきます。

Windows Server 2019 のOSインストール後の初回起動時に行う設定については、当ブログの以下の記事で紹介しています。
良ければご一読ください。

 

IIS 10の有効化

Windows Server 2019 でASP.NETのWebアプリケーションを稼働させる場合、まずはIISをインストールします。

Windows Server 2019 に同梱されているIISのバージョンは「IIS 10.0」です。

当項では、IISを有効化する手順を簡単に紹介していきます。
 

「役割と機能の追加ウィザード」を起動

サーバーマネージャーから「役割と機能の追加」を選択して、「役割と機能の追加ウィザード」を起動します。

役割と機能の追加ウィザードの起動

「サーバーの役割の選択」

ウィザード画面を進めて、「サーバーの役割の選択」画面が表示されたら、役割の一覧にある「Web サーバー(IIS)」にチェックを付けます。

サーバーの役割の選択
 

「機能の選択」

次に進むと「機能の選択」画面が表示されます。

今回は「ASP.NET 2.0」で開発されたWeb アプリケーションを稼働させる必要があるため、機能の一覧にある「.NET Framework 3.5 Features」にチェックを付けます。
このチェックを付けることで、その下の階層の「.NET Framework 3.5 (.NET 2.0 及び 3.0 を含む)」にもチェックが入ります。

機能の選択で.NET 3.5にチェック
 

「役割サービスの選択」

画面を進めると、「役割サービスの選択」画面が表示されます。
ここでは「Web サーバー(IIS)」→「Web サーバー」→「アプリケーション開発」のなかの以下の画像の項目にチェックを入れます。

役割サービスの選択

「サーバーの役割の選択」項目補足
「アプリケーション開発」の項目の一部について補足説明してしておきます。
ASP:
所謂「クラシックASP」とも呼ばれる「Active Server Pages」を使用する場合にチェックを付けます。
CGI:
IIS上で呼び出される都度メモリー内に読み込んで実行されるプログラムを利用する場合にチェックを付けます。

その後「確認」画面を経て、IISの有効化(インストール)が開始されます。

IISの有効化(インストール)開始
 
 

IISの設定

前項で有効にしたIISに対して、ASP.NET 2.0 Webアプリケーションが動作するための設定をしていきます。
尚、ASP.NET 2.0 であれば、IISに対してそれほど特殊な設定を追加しなくても動きます。
 

「IIS マネージャー」の起動

まずは、サーバーマネージャーの「ツール」内にある「インターネット インフォメーション サービス(IIS)」を選択してIISマネージャーを起動します。
 

「アプリケーションプール」の作成

今回は「ASP.NET 2.0」を使用したWeb アプリケーションを動かすための「アプリケーションプール」を新しく作成します。
尚、既定で存在しているアプリケーションプールの「DefaultAppPool」は使用せず、後述する「アプリケーション」ごとに、専用のアプリケーションプールを作成して使用するのが一般的です。

「アプリケーションプール」の追加

アプリケーションプールの新規作成画面は以下です。

「アプリケーションプール」の新規作成画面

設定項目はそれぞれ以下を入力、選択します。

設定項目 説明
名前 関連する「アプリケーション」が判別し易い名前を指定します。
.NET CLR バージョン 「.NET CLR バージョン v2.0.50727」を選択します。
マネージドパイプラインモード 「統合」を選択します。

当項で設定した「アプリケーションプール」とはそもそも何か、また、「マネージドパイプラインモード」の選択項目の違いについても、以下で簡単に説明しておきます。
 

アプリケーションプールとは?

そもそも「アプリケーションプール」とは何かについて簡単に解説します。

IISでは、IIS自体を動かすプロセスと、IISの上で稼働させているアプリケーションごとに生成されるプロセスは分離されており、アプリケーションごとに生成されるプロセスを「ワーカープロセス」と呼びます。

この「ワーカープロセス」ごとの設定を共有するグループのような仕組みが「アプリケーションプール」です。

このアプリケーションプールごとに、ガベージコレクションの設定や動作するアーキテクチャの設定が行えます。

また、アプリケーションの実装に不具合があり、プロセスが強制終了したりメモリリークなどが発生した場合も、アプリケーションプールを分離しておくことで、その影響は対象のアプリケーションのみに限定できます。

よってIIS上で稼働させるアプリケーションごとに、適切な設定をしたアプリケーションプールを紐付けてあげる必要があります。
 

マネージドパイプラインモードとは?

以下の二つの項目から選択します。

  • クラシック
  • 統合
クラシック
IIS 6.0以前のIISのアプリケーション実行モードです。
ISAPI(Internet Server Application Programming Interface)と呼ばれるIISのアプリケーション実行用の層を介してASP.NETやクラシックASPを実行します。
「CGI」では、対象のプログラムが呼び出される度にメモリー内への読み込みを行ったうえで実行されますが、ISAPIでは予め対象のプログラムを読み込ませておけることで、高速に処理が実行できます。
統合
IIS 7.0以降からIISに実装されたアプリケーション実行モードです。
IIS 6.0以前はIISのWebサーバーとしての機能とISAPIは内部的に分離しており、IISとISAPIそれぞれで重複する処理が存在していたり非効率な部分を見直して、アプリケーション実行部分をIIS本体の機能に統合したモードです。

ASP.NET 2.0 の頃のアプリケーションの場合、通常は「統合」で良いはずですが、もし移行してきたアプリケーションが「統合」で動かない場合があれば、「クラシック」に変更します。
 

「Default Web Site」の停止と「新規Web サイト」の作成

IISにおいて既定で存在している「サイト」の「Default Web Site」を停止して、新規Webサイトを作成します。
尚、当手順のように新規Webサイトを作り直さなくても「Default Web Site」をそのまま利用して、その配下に環境を構築しても問題はありません。

「サイト」内の「Default Web Site」を右クリックし、「Web サイトの管理」から「停止」を選択すると、Web サイトが停止します。

その後、「サイト」を右クリックして、「Web サイトの追加」を選択すると、「Web サイトの追加」画面が表示されます。

Webサイトの追加画面

サイト名は管理上わかりやすい名前を指定しますが、アプリケーションプールは既定値で良いです。
また、物理パスは、今回旧サーバーから移行してくるASP.NETのファイル群を配置したディレクトリではなく、IISの既定で作成されている、「inetpub\wwwroot」などで結構です。

実際のプログラムファイル群を公開する設定は、次項で作成する「アプリケーション」で指定します。

また、「Web サイト」作成時には以下の警告メッセージが表示されます。

新規Webサイト作成時の警告

これは、既定で存在する「Web サイト」の「Default Web Site」でも80番ポートがバインドされており、同一のポート番号で異なるWeb サイトが存在できないためです。
ただ、「Default Web Site」は停止しており、このメッセージは無視していただいて結構です。

 

「アプリケーションの追加」

前項で作成した「Web サイト」を右クリックして「アプリケーションの追加」を選択します。

アプリケーションの追加

「アプリケーションの追加」画面が表示されます。
エイリアス、アプリケーションプール、物理パスをそれぞれ指定します。

アプリケーションの追加

設定項目 説明
エイリアス アプリケーションの名前を指定します。
アプリケーションプール 「選択」ボタンを押下し、前項で作成したアプリケーションプールを選択します。
物理パス IISで公開するディレクトリの最上位のフォルダのパスを指定します。

 

「エイリアス」とは?

サーバー内の公開対象のディレクトリの最上位のフォルダ名を指定するケースも多いです。
尚、このエイリアス名は、クライアントがこのアプリケーションに接続しに来る際に、URLの一部になります。

例えば、以下のようなURLがあるとします。

https://www.example.com/test/test.index

このURLの文字列の「www.example.com」がFQDNです。
このFQDNの後ろの「/test」の部分でエイリアスが使われます。

よって、後述する物理パスで指定したフォルダを、例えば「test1」といったフォルダ名を指定していても、そのフォルダ名は無視されて、エイリアスで指定した「test」がFQDN直下のURL文字列として使用されます。
 

「物理パス」とは?

IISで公開するディレクトリの最上位のフォルダを指定します。
例えば、以下のように物理パスを指定します。

C:\inetpub\wwwroot\test

この場合は末尾の「test」フォルダ配下のフォルダやファイルがインターネットに公開されます。
 

中の人
なかの人

ここまでの作業を実施していただければ、新しいサーバー環境でASP.NET 2.0 アプリケーションも動作するはずです。

試してみましょう!

 

必要によって追加インストールが必要なライブラリ等

上記の手順でIIS 10 を設定することで、ASP.NET 2.0 のアプリケーションは基本的に動くはずですが、対象のASP.NET 2.0 アプリケーションの動作環境によっては、更に個別のライブラリなどをインストールしないといけない場合もあります。

必要により、以下のプログラムもインストールしてください。
尚、リンク先がいつまで存在するかはわからないため、以下のリンクが停止しても良いように、ダウンロードしたファイルは保管をしておくことをおススメします。
 

ASP.NET 2.0 AJAX Extensions

「ASP.NET 2.0 AJAX Extensions」はJavaScriptを書かずにAJAXを実装できるASP.NET の拡張機能です。
もし移行元のサーバー上にこのプログラムがインストールされているなら、念のため、インストールしておいたほうが良いかもしれません。

尚、現在インストーラーをMicrosoftのウェブサイトからダウンロードすることはできず、GitHub内でインストーラーを公開しているアカウントが存在したため、必要であれば自己責任のもと、以下のリンク先からダウンロードをしてみてください。

■Microsoft ASPNET 2.0 AJAX Extensions 1.0

 

Microsoft Visual J# 2.0 再頒布可能パッケージ

.NET 2.0 のVisual J# で作られたアプリケーションを動かすために必要なパッケージです。
場合によってはこちらも手動でインストールする必要があるかもしれません。

 

最後に

今回の記事では、ASP.NET 2.0 で稼働するアプリケーションをWindows Server 2019 などの IIS 10.0 環境へ移行する場合の作業手順とIISの設定に関するポイントを紹介しました。

また、古いIIS環境からの移行作業だけではなく、IISを構築、運用するうえで必要な基礎知識も併せて紹介させていただきました。
今回の記事が皆さまのお仕事の参考になれば幸いです。

今回も長々と読んでいただきましてありがとうございます。
それでは皆さまごきげんよう!

タイトルとURLをコピーしました