Posted by & filed under ASP.NET.

同じ IIS プロセスで、異なる 2 つのバージョンの ASP.NET を実行することはできません。サーバーを再構成して、異なるプロセスでアプリケーションを実行するには、IIS 管理ツールを使用してください。

問題の解決方法:

From:http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpguide/html/cpconconfiguringaspnetapplicationforaspnetversion.asp

 

   MSDN Japan HomeMSDN Library Japan.NET Frameworkアプリケーションの構築ASP.NET Web アプリケーションの作成ASP.NET での side-by-side 実行のサポート
.NET Framework 開発者ガイド  

 ASP.NET バージョン用の ASP.NET アプリケーションの構成

 

既 定では、既に .NET Framework がインストールされているコンピュータに新しいバージョンの .NET Framework をインストールすると、すべての ASP.NET アプリケーションは自動的にこのバージョンの .NET Framework を使用するように更新されます。例外は、互換性のないバージョンのランタイムにバインドされているアプリケーションや、ランタイムの以降のバージョンにバ インドされているアプリケーションです。.NET Framework の新しいバージョンは下位互換性を持つようにデザインされていますが、前のバージョンを使用するように ASP.NET アプリケーションを構成することもあります。.NET Framework の特定のバージョンをターゲットとして ASP.NET アプリケーションを構成する手順を以下のセクションで説明します。

ASP.NET アプリケーションのスクリプト マップの表示

.NET Framework の複数のバージョンがインストールされているコンピュータを管理する場合は、ASP.NET アプリケーションのスクリプトマップを表示すると、アプリケーションがどのバージョンを使用しているのかの判断に役に立つことがあります。ASP.NET アプリケーションのスクリプト マップは、インターネット インフォメーション サービス管理コンソールで表示できます。

ASP.NET アプリケーションのスクリプト マップを表示するには

  1. IIS 管理コンソールを開き、プラス記号をクリックしてローカル コンピュータを展開し、ASP.NET アプリケーションが保存されているフォルダに移動します。
  2. フォルダを右クリックし、[プロパティ] をクリックします。アプリケーションの [プロパティ] ダイアログ ボックスが表示されます。
  3. [ディレクトリ] タブの [構成] をクリックします。[アプリケーション構成] ダイアログ ボックスが表示されます。
  4. [マッピング] タブで、.asmx や .aspx などの ASP.NET アプリケーションの拡張子を選択します。

    ダイアログ ボックスの [実行可能パス] 列に、アプリケーションが使用している ASP.NET ISAPI バージョンへのパスのリストが表示されます。既定では、ASP.NET ISAPI は次の場所にインストールされます。

    systemroot\Microsoft.NET\Framework\versionNumber

    パスに表示されているバージョン番号は、アプリケーションが使用している ASP.NET ISAPI のバージョン番号です。ASP.NET ISAPI のバージョンによって、アプリケーションが使用するランタイムのバージョンが決められます。

Aspnet_regiis.exe によるスクリプト マップの更新

ASP.NET アプリケーションのスクリプト マップの再構成を簡単にするために、.NET Framework の各インストールには、対応するバージョンの ASP.NET IIS 登録ツール (Aspnet_regiis.exe) が含まれています。管理者は、このツールを使用して、ASP.NET アプリケーションをツールに対応した ASP.NET ISAPI バージョンに再割り当てできます。

メモ   Aspnet_regiis.exe は .NET Framework の特定のバージョンにリンクされるため、管理者は ASP.NET アプリケーションのスクリプトマップを再構成する際に、Aspnet_regiis.exe の適切なバージョンを使用する必要があります。Aspnet_regiis.exe は、ASP.NET アプリケーションのスクリプト マップをツールに対応した ASP.NET ISAPI バージョンへ再構成するだけです。

また、このツールは、インストールされている ASP.NET のすべてのバージョンの状態の表示、ASP.NET の対応するバージョンの登録、クライアント スクリプト ディレクトリの作成、および他の構成操作の実行にも使用できます。

Aspnet_regiis.exe を使用して ASP.NET アプリケーションのスクリプト マップを更新するには

  1. コマンド ウィンドウを開きます。([スタート] をクリックし、[ファイル名を指定して実行] をクリックし、「cmd」と入力して [OK] をクリックします)。
  2. 使用する Aspnet_regiis.exe バージョンが格納されているディレクトリに移動します。.NET Framework の各バージョンには、そのバージョン専用の Aspnet_regiis.exe があります。通常は、次のディレクトリにあります。

    systemroot\Microsoft.NET\Framework\versionNumber

  3. Aspnet_regiis.exe には、スクリプト マップをセットアップするアプリケーションのパスと共に -s オプションまたは -sn オプションを指定します。SampleApp1 アプリケーションのスクリプト マップを更新するコマンド ラインの例を次に示します。
    Aspnet_regiis.exe -s W3SVC/1/ROOT/SampleApp1

IIS 6.0 におけるアプリケーション プール

6.0 よりも前のバージョンの IIS は ASP.NET プロセス モデルを使用します (Aspnet_wp.exe)。ASP.NET プロセス モデルでは、一意のアプリケーションバージョンは実行時にそれぞれ個別のプロセスで自動的に実行されます。ランタイムの同じバージョンをターゲットにする すべてのアプリケーションは、同じプロセス (または、Web ガーデン モードでのプロセス) を共有します。しかし、IIS 6.0 では IIS 6.0 プロセス モデル (w3wp.exe) が使用され、アプリケーション プールと呼ばれる新しい分離機能が導入されています。アプリケーションプールを使用すると、複数のアプリケーションが同じプール指定を共有する限り、アプ リケーションどうしを 1 つ以上のプロセスで実行できます。異なるアプリケーション プールを割り当てられたアプリケーションが同じプロセスで実行されることはありません。

IIS 6.0 を使用するコンピュータに .NET Framework の複数のバージョンがインストールされているときは、アプリケーション イベント ログに次のエラー メッセージが出力されることがあります。

同じ IIS プロセスで、異なる 2 つのバージョンの ASP.NET を実行することはできません。サーバーを再構成して、異なるプロセスでアプリケーションを実行するには、IIS 管理ツールを使用してください。

こ のエラーは、ASP.NET の複数のバージョンが同じプロセスで実行するように構成されたときに発生します。.NET Framework とランタイムの異なるバージョンは、同じプロセス内で side-by-side 実行することはできません。このため、ランタイムの特定のバージョンを使用する ASP.NET アプリケーションは、異なるバージョンを使用するアプリケーションとプロセスを共有させないでください。一般的に、このエラーは、複数のアプリケーション が ASP.NET の異なるバージョンに割り当てられているのに、同じアプリケーション プールを共有するときに発生します。

ア プリケーション プールを使用するには、最初に、IIS 5.0 の分離モードを無効にしてください。次に、インターネットインフォメーション サービス管理コンソールで目的のアプリケーションに移動し、アプリケーションプールを割り当てます。アプリケーションを既存のアプリケーション プールから分離する場合は、新しいプール指定を作成します。

メモ   各アプリケーションのプロセスの分離は、手動で構成します。

IIS 6.0 で IIS 5.0 の分離モードを無効にするには

  1. IIS 管理コンソールを開き、プラス記号をクリックしてローカル コンピュータを展開します。
  2. [Web サイト] フォルダを右クリックし、[プロパティ] をクリックします。
  3. [サービス] タブで、[IIS5.0 分離モードでWWWサービスを実行する] チェック ボックスをオフにします。

IIS 6.0 で ASP.NET アプリケーションにプール指定を割り当てるには

  1. IIS 管理コンソールを開き、プラス記号をクリックしてローカル コンピュータを展開し、ASP.NET アプリケーションが保存されているフォルダに移動します。
  2. アプリケーションを右クリックし、[プロパティ] をクリックします。アプリケーションのプロパティ ダイアログ ボックスが表示されます。
  3. [ディレクトリ] タブで、[アプリケーション プール] ボックスから目的のプール指定を選択します。

IIS 6.0 でプール指定を作成するには

  1. IIS 管理コンソールを開き、プラス記号をクリックしてローカル コンピュータを展開します。
  2. [アプリケーション プール] フォルダを右クリックし、[新規作成] をポイントし、[アプリケーション プール] をクリックします。[新しいアプリケーション プールの追加] ダイアログ ボックスが表示されます。
  3. [アプリケーション プール] ボックスに、新しいプール指定を入力し、[OK] をクリックします。

参照

ASP.NET での side-by-side 実行のサポート | ASP.NET の side-by-side 実行の概要

Comments are closed.