ASP.NET IIS 登録ツール (Aspnet_regiis.exe)

ASP.NET IIS 登録ツール (Aspnet_regiis.exe) は、ASP.NET アプリケーションをインターネット インフォメーション サービス (IIS: Internet Information Services) に登録するために使用します。 ここでは、このツールを使用するためのオプション、構文、およびその他の情報について説明します。

ASP.NET IIS 登録ツールを使用すると、次のようなタスクを実行できます。

  • .NET Framework ASP.NET インストールを IIS に登録したり、登録を削除したりする。

  • 新しい ASP.NET アプリケーション プールを作成する。

  • インストールされているすべてのバージョンの ASP.NET のステータスを表示する。

重要 :重要

.NET Framework Version 4 に含まれるバージョンの Aspnet_regiis の新機能については、「オプション」セクションにまとめられています。 ただし、これらの機能は、.NET Framework 4 を Windows Vista、Windows Server 2008、または Windows 7 にインストールした場合にのみ使用できます。 .NET Framework Version 4 を Windows XP または Windows Server 2003 にインストールした場合、このツールの動作は .NET Framework Version 3.5 以前と同じになります。 Windows XP または Windows Server 2003 での Aspnet_regiis の動作の詳細については、「ASP.NET IIS 登録ツール (Aspnet_regiis.exe)」を参照してください。

.NET Framework 4 は、1 台のコンピューターに以前のバージョンの .NET Framework と side-by-side でインストールできます。 コンピューターで既に IIS が有効になっている場合、.NET Framework のセットアップ プロセスによって、ASP.NET 4 が自動的に IIS に登録されます。 ただし、.NET Framework 4 をインストールしてから IIS を有効にする場合は、ASP.NET IIS 登録ツールを実行して .NET Framework を IIS に登録し、.NET Framework 4 を使用するアプリケーション プールを作成する必要があります。

Caution メモ注意

適切なバージョンの Aspnet_regiis.exe を検索する方法については、このドキュメントで後述する「適切なバージョンの Aspnet_regiis.exe の検索」を参照してください。

aspnet_regiis [options]

ASP.NET アプリケーションを IIS に登録するときに必要なオプションは、通常、iiriru、および enable だけです。

オプション

説明

-c

ASP.NET Version 4 でアプリケーションを実行する場合は適用されないレガシ オプションです。 以前のバージョンの ASP.NET でのこのオプションの動作については、「ASP.NET IIS 登録ツール (Aspnet_regiis.exe)」を参照してください。

-disable

クラシック モードで動作する IIS 6.0 および IIS 7.0 で、ASP.NET の ISAPI 拡張機能を無効にします。 このコマンドは、統合モードの IIS 7.0 には適用されません。

このオプションと同時に指定できるのは、-i オプション、-ir オプション、または -r オプションだけです。 IIS 6.0 より前のバージョンの IIS では使用できません。

-e

各 IIS サイト ディレクトリの aspnet_client サブディレクトリから、ASP.NET のクライアント スクリプトを削除します。

この Aspnet_regiis.exe に関連付けられている ASP.NET バージョン用のクライアント スクリプトだけが削除されます。

-ea

各 IIS サイト ディレクトリの aspnet_client サブディレクトリから、すべてのバージョン用の ASP.NET のクライアント スクリプトを削除します。

-enable

クラシック モードの IIS 6.0 および IIS 7.0 で、ASP.NET の ISAPI 拡張機能を有効にします。 このコマンドは、統合モードの IIS 7.0 には適用されません。

このオプションと同時に指定できるのは、-i オプション、-ir オプション、または -r オプションだけです。 IIS 6.0 より前のバージョンの IIS や、ASP.NET Version 2.0 より前のバージョンの ASP.NET では使用できません。

-ga user

指定したユーザーまたはグループに対して、ASP.NET で使用する IIS メタベースなどのディレクトリへのアクセス許可を与えます。 通常、このオプションは、カスタム サービス アカウントを作成するときに使用します。 詳細については、「How To: ASP.NET 2.0 アプリケーション用のサービス アカウントを作成する方法」を参照してください。

このオプションは、ASP.NET 2.0 より前のバージョンの ASP.NET では使用できません。

Windows Vista、Windows Server 2008、または Windows 7 にインストールされている場合は、このオプションを使用してグループに ACL を設定できます。

メモメモ
ASP.NET Version 3.5 以前に付属するバージョンの Aspnet_regiis.exe は、ローカル ユーザーまたはローカル グループを指定すると失敗します。

-i

ASP.NET 4 をインストールし、ASP.NET 4 バージョンのアプリケーション プールを使用するように既存のアプリケーションを更新します。 また、IIS メタベースで IIS クラシック モードと IIS 統合モードの両方のハンドラーおよびスクリプトのマッピングを更新します。

このオプションは、2 つのアプリケーション プール (ASP.NET v4.0 および ASP.NET v4.0 Classic) を作成します。 DefaultAppPool アプリケーション プールおよび Classic .NETAppPool アプリケーション プールは、.NET Framework 4 バージョンの CLR に設定されます。

32 ビット バージョンの Aspnet_regiis.exe は、32 ビットのスクリプト マップのみを Applicationhost.config ファイルに追加します。 64 ビット バージョンの Aspnet_regiis.exe は、32 ビットと 64 ビットのスクリプト マップを Applicationhost.config ファイルに追加します。 これは、IIS 7.0 が有効になっている 64 ビット バージョンの Windows Vista、Windows Server 2008、または Windows 7 のインストールでは、Windows on Windows 64 ビット (WOW64) のサポートも有効になるためです。

メモメモ
オペレーティング システムの [Windows の機能] ダイアログ ボックスでは、ASP.NET 統合のオプションはオンになりません (このオプションは [インターネット インフォメーション サービス] セクションにあります)。 [Windows の機能] ダイアログ ボックスには、ASP.NET 2.0 統合のステータスのみが表示されます。バージョン 4 についての情報は表示されません。

-ir

ASP.NET 4 をインストールして登録します。 このオプションは、既存のアプリケーション プールに関連付けられている CLR バージョンを変更しない点を除いて、-i オプションと同じです。

-iru

ASP.NET が現在 IIS に登録されていない場合、-i で説明されているタスクを実行します。

以前のバージョンの ASP.NET が IIS に既に登録されている場合、このオプションは -ir で説明されているタスクを実行します。

-k path

このオプションは、Windows Vista、Windows Server 2008、または Windows 7 ではサポートされません。

Windows XP または Windows Server 2003 で実行したときのこのオプションの動作については、「ASP.NET IIS 登録ツール (Aspnet_regiis.exe)」を参照してください。

-kn path

このオプションは、Windows Vista、Windows Server 2008、または Windows 7 ではサポートされません。

Windows XP または Windows Server 2003 で実行したときのこのオプションの動作については、「ASP.NET IIS 登録ツール (Aspnet_regiis.exe)」を参照してください。

-lk

ASP.NET が割り当てられている、すべての IIS メタベース キーのパスとバージョンを一覧表示します。 このオプションは、Windows Vista およびそれ以降のバージョンではサポートされません。

親キーから ASP.NET スクリプト マップを継承するキーは表示されません。

-lv

コンピューターにインストールされている ASP.NET のすべてのバージョンのステータスとインストール パスを一覧表示します。

-norestart

このオプションは、Windows Vista、Windows Server 2008、または Windows 7 ではサポートされません。

Windows XP または Windows Server 2003 で実行したときのこのオプションの動作については、「ASP.NET IIS 登録ツール (Aspnet_regiis.exe)」を参照してください。

-r

-i で説明されているタスクを実行し、さらに、.NET Framework 4 CLR を使用するようにすべてのアプリケーション プールを切り替えます。

-s path

指定したアプリケーションとすべてのサブアプリケーションについて、スクリプト マップとアプリケーション プールの割り当てを更新します。

ルート以外の (W3SVC\ または W3SVC\ROOT ではない) Web アプリケーションの場合は、ルート以外の Web アプリケーションとそのすべてのサブアプリケーションに対するアプリケーション プールの設定が、"ASP.NET V4.0 元のアプリケーション プール名" という名前の新しいアプリケーション プールにコピーされます。その後、ルート以外の Web アプリケーションが新しいアプリケーション プールに移動されます。 新しいアプリケーション プールの設定は元のアプリケーション プールとほとんど同じですが、相違点として、コピーは .NET Framework 4 CLR にマップされ、ASP.NET 4 の設定を含みます。

新しいアプリケーション プール "ASP.NET V4.0 元のアプリケーション プール名" が既に存在する場合、アプリケーション プールの作成と複製の手順はスキップされます。 代わりに、Aspnet_regiis.exe は既存のアプリケーション プールを使用し、.NET Framework 4 CLR を使用するようにプールを設定します。ただし、それ以外の変更は行いません。 その後、ツールは、指定したアプリケーションとそのサブアプリケーションを、対応するアプリケーション プールのコピーに移動します。 既存のアプリケーション プールの設定は変更されません。

指定したアプリケーションが Web ルート (W3SVC\ または W3SVC\ROOT) の場合、Aspnet_regiis.exe は、すべてのアプリケーション プールを更新して、.NET Framework 4 CLR と ASP.NET 4 が使用されるようにします。

-sn path

-s で説明されているタスクを実行しますが、-sn は再帰的な動作をしません。 特定のアプリケーションについてのみ、スクリプト マップとアプリケーション プールの割り当てを更新します。 サブアプリケーションは変更されません。

指定したアプリケーションが Web ルート (W3SVC\ または W3SVC\ROOT) の場合、Aspnet_regiis.exe は、DefaultAppPoolClassic .NET AppPoolASP.NET V4.0、および ASP.NET  V4.0 Classic という名前のアプリケーション プールを変更して、.NET Framework 4 CLR と ASP.NET 4 が使用されるようにします。

-u

アンインストールのために、バージョン 4 の 2 つのアプリケーション プールと、バージョン 4 の 2 つのアプリケーション プールに存在していたすべてのアプリケーションを切り離します。

このオプションは、.NET Framework 4 CLR にマップされていたアプリケーション プールの managedRuntimeVersion 属性も削除します。 これにより、各アプリケーション プールのランタイムの設定は、IIS 7.0 の既定値に戻ります。Windows Vista、Windows Server 2008、または Windows 7 での既定値は 2.0 です。

このオプションは、明示的に設定されているバージョン 4 のハンドラーとモジュール マッピングをすべて削除します。 また、使用された Aspnet_regiis.exe が 32 ビットと 64 ビットのどちらのバージョンであるかにかかわらず、すべてのスクリプト マップ (32 ビットと 64 ビット) も削除します。

-ua

アンインストールのために、バージョン 4 の 2 つのアプリケーション プールと、バージョン 4 の 2 つのアプリケーション プールに存在していたすべてのアプリケーションを切り離します。

このオプションは、すべての ASP.NET の登録 (バージョン 2.0 と 4 の両方) を Applicationhost.config ファイルから削除します。 また、使用された Aspnet_regiis.exe が 32 ビットと 64 ビットのどちらのバージョンであるかにかかわらず、すべてのスクリプト マップ (32 ビットと 64 ビット) も削除します。

既存のアプリケーション プールは、.NET Framework 2.0 と関連付けられたままになります。これは、2.0 が managedRuntimeVersion 属性の既定値であるためです。

-?

ASP.NET IIS 登録ツールのコマンド構文とオプションを表示します。

構成オプション

オプション

説明

-config+

ASP.NET 構成へのリモート アクセスを有効にします。

-config-

ASP.NET 構成へのリモート アクセスを無効にします。

-pa container account

指定したユーザーまたはグループの account に、指定したキー コンテナーへのアクセス許可を与えます。 このオプションには、次の修飾子を指定できます。

  • -pku   コンピューターの既定のコンテナーを、ユーザー指定のコンテナーに置き換えます。

  • -csp provider   使用するコンテナー プロバイダーを指定します。

  • -full   フル アクセスを追加するように指定します (既定のアクセスは読み取り専用です)。

-pc container

RSA の公開キーと秘密キーのペアを、指定したコンテナーに作成します。 このオプションには、次の修飾子を指定できます。

  • -size keySize   キーのサイズを指定します。 既定値は 2048 バイトです。

  • -pku   既定のキー コンテナーを、ユーザー指定のコンテナーに置き換えます。

  • -exp   秘密キーはエクスポートできる必要があることを指定します。

  • -csp provider   使用するコンテナー プロバイダーを指定します。

-pd section

構成セクションの暗号化を解除します。 この引数には、次のパラメーターを指定できます。

  • -app virtualPath   指定したパスのレベルで暗号化の解除を行う必要があることを指定します。

  • -location subPath   暗号化解除対象のサブディレクトリを指定します。

  • -pkm   Web.config ファイルではなく Machine.config ファイルの暗号化を解除する必要があることを指定します。

-pdf section webApplicationDirectory

仮想ディレクトリではなく、指定した物理ディレクトリにある Web.config ファイル内の、指定した構成セクションを暗号化解除します。

-pe section

指定した構成セクションを暗号化します。 このオプションには、次の修飾子を指定できます。

  • -prov provider   使用する暗号化プロバイダーを指定します。

  • -app virtualPath   指定したパスのレベルで暗号化を行う必要があることを指定します。

  • -location subPath   暗号化対象のサブディレクトリを指定します。

  • -pkm   Web.config ではなく Machine.config ファイルの暗号化を行う必要があることを指定します。

-pef section webApplicationDirectory

仮想ディレクトリではなく、指定した物理ディレクトリにある Web.config ファイル内の、指定した構成セクションを暗号化します。

-pi container file

指定の XML file から、指定の container に、RSA 公開キーと秘密キーのペアをインポートします。 このオプションには、次の修飾子を指定できます。

  • -pku   コンピューターの既定のコンテナーを、ユーザー指定のコンテナーに置き換えます。

  • -exp   秘密キーをエクスポートできることを指定します。

  • -csp provider   使用するコンテナー プロバイダーを指定します。

-pr container account

指定したユーザーまたはグループの account から、指定したキー コンテナーへのアクセス許可を削除します。 このオプションには、次の修飾子を指定できます。

  • -pku   コンピューターの既定のコンテナーを、ユーザー指定のコンテナーに置き換えます。

  • -csp provider   使用するコンテナー プロバイダーを指定します。

-px container file

RSA 公開キーと秘密キーのペアを、指定のコンテナーから指定の XML ファイルにエクスポートします。 このオプションには、次の修飾子を指定できます。

  • -pku   コンピューターの既定のコンテナーを、ユーザー指定のコンテナーに置き換えます。

  • -csp provider   使用するコンテナー プロバイダーを指定します。

-pz container

指定したキー コンテナーを削除します。 このオプションには、次の修飾子を指定できます。

  • -pku   コンピューターの既定のコンテナーを、ユーザー指定のコンテナーに置き換えます。

1 台のコンピューターに複数バージョンの ASP.NET がインストールされている場合、ASP.NET のバージョンは side-by-side 実行されていると言います。 この場合、IIS を構成して、どのバージョンの ASP.NET ISAPI (aspnet_isapi.dll) が ASP.NET アプリケーションのページを処理するかを指定する必要があります。 IIS 7.0 では、クラシック モードと統合モードのどちらの場合でも、アプリケーションの実行に使用される ASP.NET のバージョンおよび関連付けられる CLR のバージョンは、アプリケーション プールに設定された CLR のバージョンによって決まります。 IIS 6.0 では、スクリプト マップを使用することで、アプリケーションが特定のバージョンの ASP.NET ISAPI に関連付けられます。その ISAPI のバージョンによって、アプリケーションの実行に使用される CLR のバージョンが決まります。

Aspnet_regiis.exe には 32 ビット バージョンと 64 ビット バージョンがあります。 Windows Vista および Windows Server 2008 では、64 ビットの IIS のインストール上で 32 ビット バージョンのツールを実行できます。 これにより、同一の 64 ビット システム上で、32 ビットと 64 ビットの混合のワーカー プロセスを実行できます。 次の表は、32 ビット バージョンのツールを 64 ビット バージョンの IIS で実行するときに適用される特殊なケースと制限事項の一覧です。

IIS のバージョン

32 ビット バージョンの Aspnet_regiis.exe に関する特殊なケース

6.0

Windows Server 2003 にインストールされた 64 ビットの IIS 6.0 では、32 ビット バージョンの Aspnet_regiis.exe を実行できますが、次の制限事項があります。

  • 32 ビット バージョンは、IIS が 32 ビット モードで実行するように設定されている場合にのみ動作します。

  • 64 ビット バージョンは、IIS が 64 ビット モードで実行するように設定されている場合にのみ動作します。

7.0

Windows Vista、Windows Server 2008、または Windows 7 では、32 ビット バージョンの Aspnet_regiis.exe を IIS 7 で実行する場合、ツールは applicationPools 要素の enable32BitAppOnWin64 属性を自動的には設定しません。 Windows on Windows 64 が有効な既定の 64 ビット オペレーティング システムのインストールでは、32 ビットの Aspnet_regiis.exe を使用して IIS 7 を構成できますが、enable32BitAppOnWin64 属性を明示的に変更して Windows on Windows 64 でアプリケーションを実行できるようにしない限り、32 ビット アプリケーションを実行することはできません。 IIS 7.0 の構成オプションの詳細については、Applicationhost.config ファイルの applicationPools 要素についてのドキュメントを参照してください。

通常、ASP.NET IIS 登録ツールは、-s オプションまたは -sn オプションを付けて使用して、ツールに関連付けられている .NET Framework バージョンに ASP.NET アプリケーションをマップし直します。 指定したルート パスおよびそのすべてのサブディレクトリ内のアプリケーションを更新するには、-s オプションを使用します。 サブディレクトリ内のアプリケーションを更新しない場合は、-sn オプションを使用します。

メモメモ

path パラメーターは、物理パスではなく、アプリケーションのルート パスを指します。 たとえば、W3SVC/1/ROOT/SampleApp1 のようにします。

ASP.NET IIS 登録ツールを使用して、ASP.NET に関する情報を表示することもできます。 コンピューターにインストールされているすべてのバージョンの ASP.NET のステータスとインストール パスを一覧表示するには、-lv オプションを使用します。

-norestart オプションを使用すると、ASP.NET スクリプト マップのインストール後または更新後に World Wide Web 発行サービスが再起動されなくなります。 IIS で複数の Web サイトを実行し、それらがさまざまなアプリケーション プールにある場合に、Web サイトが再起動されないようにするには、このオプションを使用します。

インターネット インフォメーション サービス コンソール アプリケーションの [ASP.NET] タブを使用して変更を行った場合も、すべてのアプリケーション プールが再利用されます。 一部のアプリケーション プールを再利用せずにアプリケーションで使用する ASP.NET のバージョンを変更する場合は、次の 2 つのコマンドを実行してバージョンを変更します。

aspnet_regiis -s w3svc/<instance>/root -norestart
iisapp /a <app pool> /r

また、ASP.NET IIS 登録ツールを使用すると、リンク バージョンの ASP.NET をインストールおよびアンインストールできます。 ASP.NET をインストールし、既存のすべての ASP.NET アプリケーションのスクリプト マップを更新するには、-i オプションを使用します。 スクリプト マップを更新せずに ASP.NET をインストールするには、-ir オプションを使用します。 このツールに関連付けられた ASP.NET バージョンをアンインストールするには、-u オプションを使用します。 コンピューターから ASP.NET のすべてのバージョンをアンインストールする場合は、-ua オプションを使用します。

ASP.NET IIS 登録ツールを使用して、ASP.NET に関する情報を表示することもできます。 コンピューターにインストールされているすべてのバージョンの ASP.NET のステータスとインストール パスを一覧表示するには、-lv オプションを使用します。 ASP.NET がマップされている、すべての IIS メタベース キーのパスを参照するには、-lk オプションを使用します。

Aspnet_regiis.exe を使用すると、システム クライアント側スクリプト (クライアント側の検証のスクリプトなど) をインストールおよび削除できます。 ツールに関連付けられた ASP.NET バージョン用のクライアント スクリプトをインストールするには、-c オプションを使用します (スクリプトは、各 IIS サイト ディレクトリの Aspnet_client サブディレクトリにインストールされます)。 ツールに関連付けられた ASP.NET バージョン用だけのクライアント側スクリプトを削除するには、-e オプションを使用します。 インストールされている ASP.NET のすべてのバージョン用のクライアント側スクリプトを削除するには、-ea オプションを使用します。

偽装を使用するときに偽装アカウントが IIS メタベースに対する読み取りアクセス権を持っていない場合、DirectoryEntry にアクセスしようとすると、"アクセスが拒否されました" というメッセージの COMException 例外がスローされます。 これは、アプリケーションのルート ディレクトリにアプリケーションの Code サブディレクトリが存在する場合に発生することがあります。 また、アプリケーションが UNC 共有に割り当てられ、UNC アカウントがメタベースに対する読み取りアクセス権を持っていない場合にも、このエラーが発生することがあります。 このいずれかに該当する場合、偽装アカウントまたは UNC アカウントに対して -ga user オプションを指定して ASP.NET IIS 登録ツールを実行すると、この問題が修正されます。

スクリプト マップとアプリケーションのルート パスの詳細については、Microsoft の Web サイトで IIS のドキュメントを参照してください。

次のコマンドは、使用している ASP.NET IIS 登録ツールのバージョンに関連付けられた ASP.NET バージョンをインストールし、既存の ASP.NET アプリケーションを更新します。 IIS 6.0 の場合、このコマンドは、以前のバージョンの ASP.NET に現在マップされている既存の ASP.NET アプリケーションのスクリプト マップを更新します。 IIS 7.0 の場合、このコマンドは、IIS メタベースでクラシック モードと統合モードの両方のハンドラーを更新します。 また、.NET Framework 4 CLR を使用するように、DefaultAppPool および Classic  .NET AppPool アプリケーション プールを切り替えます。

aspnet_regiis -i

次のコマンドは、既存のアプリケーションを更新せずに、ツールに関連付けられた ASP.NET バージョンをインストールします。 IIS 7.0 の場合、このコマンドは、DefaultAppPool および Classic .NET AppPool アプリケーション プールに関連付けられた .NET Framework のバージョンを更新しません。

aspnet_regiis -ir

コンピューターにインストールされている ASP.NET のすべてのバージョンのステータスとインストール パスを一覧表示するコマンドを次に示します。

aspnet_regiis -lv

次のコマンドは、ツールに関連付けられた ASP.NET バージョンを使用するように、Web アプリケーションとそのすべてのサブアプリケーションを更新します。 IIS 6.0 の場合、スクリプト マップは更新されます。 IIS 7.0 の場合、アプリケーションは新しいアプリケーション プールにマップされます。

aspnet_regiis -s W3SVC/1/ROOT/SampleApp1

次のコマンドは -s コマンドと同じ機能を実行しますが、サブディレクトリのアプリケーションには影響を与えません。

aspnet_regiis -sn W3SVC/1/ROOT/SampleApp1

次のコマンドは、指定したユーザーまたはグループのアカウントに、ASP.NET で使用される IIS メタベースや他のディレクトリへのアクセス許可を与えます。

aspnet_regiis -ga MyUserGroup W3SVC/1/ROOT/SampleApp1

Aspnet_regiis.exe は、Microsoft.NET Framework のディレクトリにインストールされます。 コンピューターで複数のバージョンの .NET Framework を side-by-side で実行している場合は、複数のバージョンのツールがインストールされると考えられます。 次の表に、さまざまなバージョンの .NET Framework でツールがインストールされる場所を示します。

.NET Framework のバージョン

Aspnet_regiis.exe ファイルの場所

.NET Framework Version 1

%windir%\.NET\Framework\v1.0.3705

.NET Framework Version 1.1

%windir%\Microsoft.NET\Framework\v1.1.4322

.NET Framework Version 2.0、Version 3.0、および Version 3.5 (32 ビット システム)

%windir%\Microsoft.NET\Framework\v2.0.50727

.NET Framework Version 2.0、Version 3.0、および Version 3.5 (64 ビット システム)

%windir%\Microsoft.NET\Framework64\v2.0.50727

.NET Framework Version 4 (32 ビット システム)

%windir%\Microsoft.NET\Framework\v4.0.30319

.NET Framework Version 4 (64 ビット システム)

%windir%\Microsoft.NET\Framework64\v4.0.30319

.NET Framework Version 3.0 および 3.5 のディレクトリには、このツールのコピーはありません。 詳細については、Scott Hanselman のブログのエントリ「How to set an IIS Application or AppPool to use ASP.NET 3.5 rather than 2.0 (ASP.NET 2.0 でなく 3.5 を使用するために IIS アプリケーションまたは AppPool を設定する方法)」を参照してください。

表示: