Web 配置ハンドラーを構成する
作成者: Faith A
このガイドでは、ホストされているサーバーで Web 配置ハンドラーを構成し、ユーザーが Web サイト上にアプリケーションを配置できることをテストする手順の基本的な概要を説明します。 このセットアップでは、このドキュメントの情報を使用して Web 配置ツールを新しいサーバーにインストールし、推奨設定を構成します。
前提条件
このガイドには、次の前提条件が必要です。
- .NET Framework 2.0 SP1 以上
- Web 配置ツール 1.0 または 1.1
- Web 管理サービス (WMSvc) がインストールされている IIS 7 以上
注: Web 配置ツールをまだインストールしていない場合は、Web 配置ツールのインストールに関するページを参照してください。
Web 配置ハンドラーについて
ハンドラーは、Windows Server 2008 の IIS 7.0 と Windows 2008 R2 の IIS 7.5 に付属する Web 管理サービス (WMSvc) と統合されています。
まず、ユーザーのアカウント (IIS マネージャー ユーザーまたは Windows アカウント) を作成する必要があります。 IIS マネージャーのユーザー アカウントの作成について詳しくは、IIS でのリモート管理と機能委任の構成に関するページを参照してください。
第 2 に、ユーザーは WMSvc を使用して自分の Web サイトに接続する権限を持っている必要があります。 IIS マネージャーの IIS マネージャーのアクセス許可機能を使用して、ユーザーに自分の Web サイトにリモート接続する権限を付与することができます。
第 3 に、ユーザーは Web 配置ツールを使用して配置を実行するための権限も必要です。 IIS マネージャーの [管理サービスの委任] 機能を使用すると、ユーザーが自分の Web サイトへの配置を実行できるようにしたり、他のユーザーへの配置はできないようにする委任ルールを作成できます。
次の図は、配置要求がハンドラーにルーティングされ、ハンドラーの独自ルールに対して承認される前に、どのようにユーザーが最初に WMSvc に接続され、承認されるかを示しています。 このクイック ガイドは、ユーザーがコンテンツを使用した IIS アプリケーションの展開、ファイルのアクセス許可の設定、データベースの配置を行えるようにするために必要なルールを設定するのに役立ちます。
パート 1 - WMSvc と IIS マネージャーのアクセス許可を構成する
- Windows Server 2008 サーバーに IIS と Web 管理サービスをインストールします。
- リモート接続が許可されるように WMSvc を構成します。
a. IIS マネージャーを開きます。
b. [サーバー] ノードを選択します。
c. サーバーの [機能ビュー] で、[管理サービス] アイコンをダブルクリックします。
d. [リモート接続を有効にする] チェックボックスがオンになっていることを確認します。 チェックボックスがオンになっておらず、灰色で表示されている場合は、[操作] ウィンドウを使用して WMSvc サービスを停止します。 この操作を行うと、チェックボックスを選択できるようになります。
e. 右側の [操作] ウィンドウで、[スタート] をクリックします。 [リモート接続を有効にする] チェックボックスがオンになり、灰色で表示されます。 - WMSvc が実行されているアカウント (ローカル サービスなど) に、顧客のディレクトリに対するフル コントロール アクセス許可を付与します。
- ユーザーの Web サイトを作成した後、ユーザーに自分の Web サイトへのアクセスを許可します。
a. IIS マネージャーを開きます。 b. ユーザーがリモートで管理する Web サイトを選択します。
c. [機能ビュー] で、[IIS マネージャーのアクセス許可] をダブルクリックします。 d. [IIS マネージャーのアクセス許可] ページの [操作] ウィンドウで、[ユーザーの許可] をクリックします。
e. [ユーザーの許可] ダイアログ ボックスで、ユーザーの種類 (Windows または IIS マネージャー) を選び、[選択] をクリックしてユーザーのアカウントを選びます。
f. [OK] をクリックして [ユーザーの許可] ダイアログ ボックスを閉じます。
IIS マネージャーのユーザー アカウントの詳細については、「IIS マネージャーのユーザー アカウントをサイトまたはアプリケーションに接続できるようにする (IIS 7)」を参照してください。
パート 2 – Web 配置ユーザーの委任ルールを作成する
- Web 配置ツールをまだインストールしていない場合は、ダウンロードして Web サーバーにインストールします。
- ユーザーに許可する Web 配置機能 (プロバイダー) の委任ルールを作成します。 ユーザーが自分の Web サイトにアプリケーションとコンテンツを展開できるようにするには:
a. IIS マネージャーを開きます。
b. [サーバー] ノードを選択します。
c. サーバーの [機能ビュー] で、[管理サービスの委任] アイコンをダブルクリックします。
d. 右側の [操作] ウィンドウで [ルールの追加] をクリックします。
e. [コンテンツを使用したアプリケーションの展開] ルール テンプレートを選択します。 このテンプレートを使用すると、WMSvc 承認ユーザーが Web 配置 contentPath と iisApp プロバイダーを使用して、ユーザー スコープにアプリケーションを展開できるようにするルールが作成されます。
f. [OK] をクリックして、テンプレートを開きます。
g. [OK] をクリックして規則を作成します。
h. [ユーザーをルールに追加] ダイアログ ボックスで、アスタリスク (*) を入力します。 この操作を行うと、各ユーザーは自分のユーザー スコープにアプリケーションを展開できます。
注: 管理者のみの同期を実行する場合は、[管理サービスの委任] ページに移動します。 [操作] ウィンドウで、[機能設定の編集] をクリックし、[管理者にルールのバイパスを許可する] を選択します。
アプリケーション ルールとしてフォルダーをマークする
各ユーザーが自分の Web サイト内にアプリケーションを作成できるようにするには:
a. [ルールの追加...] をクリックします。 [アプリケーションとしてフォルダーをマークする] ルール テンプレートを選択します。 このテンプレートを使用すると、すべての WMSvc 承認ユーザーが Web 配置の createApp プロバイダーを使用して、ユーザー スコープ内にアプリケーションを作成できます。 アプリケーションは、アプリケーション プールを含め、親からすべての設定を継承します。 c. [OK] をクリックして、テンプレートを開きます。
d. [RunAs] セクションで、[ID の種類] に [SpecificUser] を選択し、[設定...] ボタンをクリックして、この操作を実行するユーザー アカウントを指定します。 このルールを機能させるには、applicationHost.config ファイルへの書き込みアクセス権を持つユーザーとして、ルールを実行する必要があります。 Administrators グループに含まれていないアカウント ("CreateAppUser" など) を作成し、そのアカウントに最低限必要なアクセス許可のみを付与することをお勧めします。 手順は次のとおりです。- ユーザー アカウントを作成する
%windir%\system32\inetsrv\config
に読み取りアクセス許可を付与する%windir%\system32\inetsrv\config\applicationHost.config
に変更アクセス許可を付与する
[ユーザーをルールに追加] ダイアログ ボックスで、アスタリスク (*) を入力します。 この操作を行うと、各ユーザーは自分の Web サイト内にアプリケーションを作成できます。
データベースの配置ルール
- ユーザーが自分の Web サイトにデータベースを配置できるようにするには:
a. [ルールの追加...] をクリックします。 [データベースの配置] ルール テンプレートを選択します。 このテンプレートを使用すると、WMSvc 承認ユーザー (パート 1 で設定) でデータベースを SQL データベース サーバーに配置できます。 c. [OK] をクリックして、テンプレートを開きます。
d. 承認するパスを追加します。たとえば、任意のユーザーがSQL 資格情報を使用してこのサーバーに配置できるようにするには Server=Server1、または、ユーザー名と一致する特定のデータベースに制限するには、Server=Server1;Database={userName}_db1 などです。
e. [OK] をクリックして規則を作成します。 - [ユーザーをルールに追加] ダイアログ ボックスで、アスタリスク (*) を入力します。 この操作を行うと、各ユーザーは自分の Web サイトにデータベースを配置できます。
アクセス許可の設定ルール
- 各ユーザーが自分の Web サイトにアプリケーションとコンテンツを展開できるようにするには:
a. [ルール テンプレートの選択...] をクリックします。 [アクセス許可の設定] ルール テンプレートを選択します。 このテンプレートを使用すると、WMSvc 承認ユーザーはファイル システムに ACL を設定できます。 c. [OK] をクリックして、テンプレートを開きます。
d. [OK] をクリックして規則を作成します。 - [ユーザーをルールに追加] ダイアログ ボックスで、アスタリスク (*) を入力します。 この操作を行うと、各ユーザーは自分の Web サイト内にアプリケーションとコンテンツを展開できます。
必要に応じて、WMSvc のトレースを有効にする
WMSvc のトレースを有効にする場合は、Web 管理サービスのトレースの構成に関するページを参照してください。 トレース ログは %systemdrive%\inetpub\logs\wmsvc\tracinglogfiles\w3svc1
に格納されます。
パート 3 - Web サイトへのユーザーの接続をテストする
- IIS リモート マネージャーがインストールされているクライアント コンピューターに Web 配置ツールをダウンロードしてインストールするか、ローカル サーバーを使用します。 まずローカル サーバーをテストして、ネットワーク、ファイアウォール、またはプロキシの設定によって発生する可能性のある問題を特定することをお勧めします。
- ユーザー用に作成した資格情報を使用して、ユーザーの Web サイトへの接続をテストします。
a. IIS マネージャーを開きます。
b. [スタート ページ] ノードを右クリックします。
c. [サイトに接続...] を選択します (注: [サーバーに接続] は選択しないでください)
d. [サーバー名] テキスト ボックスに「localhost」と入力します。
e. [サイト名] テキスト ボックスに、リモート管理を有効にしたユーザーの Web サイトの名前を入力します。
f. 次へ をクリックします。
g. [ユーザー名] テキスト ボックスに、Web サイトに対して承認したユーザーを入力します。
h. [パスワード] テキスト ボックスにユーザーのパスワードを入力します。
i. [次へ] をクリックして、ウィザードを完了します。 信頼されていない証明書または自己署名証明書を使用している場合は、証明書を信頼するように求められる場合があります。 IIS マネージャーの右下隅には、新しい接続状態 (例: SampleUser として localhost 8172) が表示されます。 - クイック アプリケーション パッケージを作成して、承認ルールが機能していることを確認します。
a. [操作] ウィンドウで [アプリケーションのエクスポート...] をクリックします。
b. この操作を行うと、[アプリケーションのエクスポート] ウィザードが起動し、すべての画面で [次へ] をクリックして既定値をそのまま使用し、パッケージを作成します。 - パッケージを作成したら、インストールできることを確認します。
a. [操作] ウィンドウで、[アプリケーションのインポート...] をクリックします。
b. 次へ をクリックします。 c. [パラメーター] ページで、アプリケーション名を Web サイトにまだ存在していない名前に変更して、ユーザーがアプリケーションを作成できることを確認します。
d. ウィザードの完了。 - 最後に、アプリケーション パッケージをダウンロードしてこの Web サイトにアプリケーションをインストールし、データベースやその他のオプションが動作していることを確認する必要があります。
トラブルシューティング
展開中に発生する可能性がある一般的な問題がいくつかあります。
ユーザーが Web サイトへの接続中に 401 の未承認エラーを受け取る。
- 原因: このエラーは WMSvc に由来し、通常はユーザー名またはパスワードのエラーか、ユーザーに Web サイトへのアクセス権がないためです。
- 解決策: ユーザー名またはパスワードを確認し、ユーザーが Web サイトへのアクセス権を持っていることを確認します。
ユーザーがアプリケーションのインポートまたはエクスポート中にサーバー エラーを受け取る。
原因: このエラーは Web 配置ハンドラーに由来し、通常は展開ルールに問題があります。 ユーザーは正常に接続されているため、WMSvc の問題ではありません。 展開ルールに入力ミスがある場合、展開を実行しているユーザーが承認されていないか、runAs ID にアクセス権がない可能性があります。
解決策:
%systemdrive%\inetpub\logs\wmsvc\tracinglogfiles\w3svc1
のトレース ログを開き、承認に失敗しているルールを確認します。- "詳細: ユーザー 'server1\siteowner'、プロバイダー 'appPoolConfig'、操作 '読み取り'、パス 'DefaultAppPool' を承認できるルールが見つかりませんでした" などのエラーが含まれているログを探します。 この場合、プロバイダー appPoolConfig は承認されておらず、ユーザーは追加を許可されていないプロバイダーを追加しようとしています。
- もう 1 つの一般的なエラーは、アプリの作成に使用されている RunAs ユーザーに構成への適切なアクセス権がない場合です。 この場合、Procmon ツールを使用すると、アクセス拒否エラーの発生元を特定するのに便利です。
まとめ
このガイドでは、ユーザーが Web アプリケーションを管理できるように WMSvc と配置ハンドラーを構成する方法と、IIS マネージャーを使用してパッケージを作成してインストールし、委任ルールが機能していることを確認する手順について説明しています。