既定では、既にランタイムがインストールされているコンピュータに新しいバージョンの .NET Framework をインストールすると、すべての ASP.NET アプリケーションはこのバージョンの .NET Framework を使用するように自動的に更新されます。例外は、互換性のないバージョンのランタイムにバインドされているアプリケーションや、ランタイムの以降のバージョンにバインドされているアプリケーションです。 (通常、互換性は .NET Framework のバージョン番号で決まります一般にメジャー バージョンが異なると互換性がありません。これに対して、マイナー バージョンが更新されている場合やビルド番号のバージョンが異なる場合は互換性があります)。.NET Framework の新しいバージョンは下位互換性を持つようにデザインされていますが、ランタイムの特定のバージョンを使用するように ASP.NET アプリケーションを構成することもあります。
.NET Framework の複数のバージョンがインストールされているコンピュータを管理する場合は、ASP.NET アプリケーションのスクリプト マップ (アプリケーション マップとも呼ばれます) を表示すると、アプリケーションがどのバージョンを使用しているのかの判断に役に立つことがあります。ASP.NET アプリケーションのスクリプト マップは、インターネット インフォメーション サービス (IIS: Internet Information Services) 管理コンソールで表示できます。
ASP.NET アプリケーションのスクリプト マップを表示するには
-
IIS 管理コンソールを開きます。
-
ローカルのコンピュータ ノード、[Web サイト]、および [既定の Web サイト] を順に展開します。
-
アプリケーションのフォルダを右クリックし、[プロパティ] をクリックします。
-
[ディレクトリ] タブの [構成] をクリックします。
[アプリケーション構成] ダイアログ ボックスが表示されます。
-
[マッピング] タブで、.asmx や .aspx などの ASP.NET アプリケーションの拡張子を選択します。
ダイアログ ボックスの [実行可能パス] 列に、アプリケーションが使用している ASP.NET ISAPI 拡張機能へのパスのリストが表示されます。既定では、ASP.NET ISAPI 拡張機能は次の場所にインストールされます。
%system root%\Microsoft.NET\Framework\versionNumber
パスに表示されているバージョン番号は、アプリケーションが使用している ASP.NET ISAPI 拡張機能のバージョン番号です。ASP.NET ISAPI 拡張機能のバージョンによって、アプリケーションが使用するランタイムのバージョンが決まります。
スクリプト マップを使用するアプリケーションの構成
ASP.NET アプリケーションのスクリプト マップの再構成を簡単にするために、.NET Framework の各インストールには、対応する独自のバージョンの ASP.NET IIS 登録ツール (Aspnet_regiis.exe) が含まれています。Web サーバー コンピュータ上で管理者特権を持つユーザーは、このツールを使用して、そのツールと一致するバージョンの ASP.NET ISAPI 拡張機能に ASP.NET アプリケーションを割り当てることができます。
メモ : |
|---|
| Aspnet_regiis.exe は .NET Framework の特定のバージョンに関連付けられているため、ASP.NET アプリケーションのスクリプト マップを再構成する際に、Aspnet_regiis.exe の適切なバージョンを使用する必要があります。Aspnet_regiis.exe ツールは、そのツールと一致するバージョンの ASP.NET ISAPI 拡張機能に対して、ASP.NET アプリケーションのスクリプト マップを再構成します。 |
また、このツールは、インストールされている ASP.NET のすべてのバージョンの状態の表示、ASP.NET の対応するバージョンの登録、クライアント スクリプト ディレクトリの作成、および他の構成操作の実行にも使用できます。
Aspnet_regiis.exe を使用して ASP.NET アプリケーションのスクリプト マップを更新するには
-
Windows コマンド ウィンドウを開きます。
-
使用する Aspnet_regiis.exe ツールのバージョンが格納されているディレクトリに移動します。.NET Framework の各バージョンには、そのバージョン専用の Aspnet_regiis.exe があります。通常は、次のディレクトリにあります。
%system root%\Microsoft.NET\Framework\versionNumber
-
-s オプションまたは -sn オプション、およびアプリケーションへのパスを指定して Aspnet_regiis.exe ツールを実行します。
SampleApp1 アプリケーションのスクリプト マップを更新するコマンドの例を次に示します。
Aspnet_regiis.exe -s W3SVC/1/ROOT/SampleApp1
アプリケーション プールの構成
IIS Version 5.0 は ASP.NET プロセス モデルを使用します (Aspnet_wp.exe)。ASP.NET プロセス モデルでは、一意のアプリケーション バージョンは実行時にそれぞれ個別のプロセスで自動的に実行されます。ランタイムの同じバージョンをターゲットにするすべてのアプリケーションは、同じプロセス (または、Web ガーデン モードでのプロセス) を共有します。しかし、IIS 6.0 では IIS 6.0 プロセス モデル (w3wp.exe) が使用され、アプリケーション プールと呼ばれる分離機能が導入されています。アプリケーション プールを使用すると、複数のアプリケーションが同じプール指定を共有する限り、アプリケーションどうしを 1 つ以上のプロセスで実行できます。異なるアプリケーション プールを割り当てられたアプリケーションが同じプロセスで実行されることはありません。
注意 |
|---|
| ASP.NET Version 1.0 は IIS 6.0 の IIS 5.0 分離モードでのみサポートされます。 |
IIS 6.0 を使用するコンピュータに .NET Framework の複数のバージョンがインストールされているときは、アプリケーション イベント ログに次のエラー メッセージが出力されることがあります。
同じ IIS プロセスで、異なる 2 つのバージョンの ASP.NET を実行することはできません。サーバーを再構成して、異なるプロセスでアプリケーションを実行するには、IIS 管理ツールを使用します。
このエラーは、複数のバージョンの ASP.NET が同じプロセスを実行するように構成されている場合に発生します。これは、異なるバージョンの .NET Framework とランタイムは同じプロセス内で side-by-side 実行できないためです。このため、ランタイムの特定のバージョンを使用する ASP.NET アプリケーションは、異なるバージョンを使用するアプリケーションとプロセスを共有させないでください。一般的に、このエラーは、複数のアプリケーションが ASP.NET の異なるバージョンに割り当てられているのに、同じアプリケーション プールを共有するときに発生します。
メモ : |
|---|
| 各アプリケーションのプロセスの分離は、手動で構成します。 |
IIS 6.0 で IIS 5.0 の分離モードを無効にするには
-
IIS 管理コンソールを開きます。
-
[Web サイト] フォルダを右クリックし、[プロパティ] をクリックします。
-
[サービス] タブで、[IIS 5.0 プロセス分離モードで WWW サービスを実行する] チェック ボックスをオフにします。
IIS 6.0 で ASP.NET アプリケーションにプール指定を割り当てるには
-
IIS 管理コンソールを開きます。
-
ローカルのコンピュータ ノード、[Web サイト]、および [既定の Web サイト] を順に展開します。
-
アプリケーションのフォルダを右クリックし、[プロパティ] をクリックします。
-
[ディレクトリ] タブで、[アプリケーション プール] ボックスから目的のプール指定を選択します。
IIS 6.0 でプール指定を作成するには
-
IIS 管理コンソールを開きます。
-
ローカルのコンピュータ ノードを展開します。
-
[アプリケーション プール] フォルダを右クリックし、[新規作成] をポイントし、[アプリケーション プール] をクリックします。
[新しいアプリケーション プールの追加] ダイアログ ボックスが表示されます。
-
[アプリケーション プール] ボックスに、新しいプール指定を入力し、[OK] をクリックします。
参照