Web パッケージを手動でインストールする
作成者: Jason Lee
このトピックでは、Web 展開パッケージをインターネット インフォメーション サービス (IIS) に手動でインポートする方法について説明します。
トピック「Web アプリケーション プロジェクトのビルドとパッケージ化」では、IIS Web 展開ツール (Web 配置) を Microsoft Build Engine (MSBuild) および Web 発行パイプライン (WPP) と組み合わせて使用して、どのように Web アプリケーション プロジェクトを 1 つの ZIP ファイルにパッケージ化できるかについて説明しました。 このファイルは、一般に Web 展開パッケージ (または単に展開パッケージ) と呼ばれ、Web サーバー上で Web アプリケーションを再作成するために IIS が必要とするすべてのコンテンツと構成情報を含んでいます。
Web 展開パッケージを作成したら、さまざまな方法で IIS サーバーに発行できます。 多くのシナリオでは、MSBuild、WPP、Web 配置の間の統合ポイントを利用して、自動またはシングルステップのビルドおよび展開プロセスの一環として、Web パッケージをリモートで作成してインストールします。 このプロセスについては、「Web パッケージを展開する」で説明されています。 ただし、これが常に可能であるとは限りません。 Web アプリケーションを、インターネットに接続する運用環境に展開するとします。 セキュリティ上の理由から、このような運用環境は、境界ネットワーク (DMZ、非武装地帯、スクリーン サブネットとも呼ばれます) 内の、ビルド サーバーとは別のサブネット上のファイアウォールの背後にあることはほとんど考えられません。 多くの場合、運用環境は別のドメインまたは物理的に分離されたネットワーク上に配置されます。
これらのシナリオでは、Web パッケージを宛先サーバーに移植し、手動で IIS にインポートすることが唯一の選択肢であると考えられます。 この方法では自動展開は不可能になりますが、それでも非常に効果的な Web アプリケーション発行手法です。単に 1 つの ZIP ファイルを Web サーバーにコピーし、ウィザードをガイドとして使用してインポート プロセスを実行するだけです。
このトピックは、Fabrikam, Inc. という架空の会社のエンタープライズ配置要件を題材にしたチュートリアル シリーズの一部です。このシリーズでは、サンプル ソリューション (Contact Manager ソリューション) を使用して、現実的なレベルの複雑さを持った、ASP.NET MVC 3 アプリケーション、Windows Communication Foundation (WCF) サービス、データベース プロジェクトなどを含んだ Web アプリケーションを取り上げます。
タスクの概要
Web 展開パッケージを IIS にインポートするには、次の概要のタスクを完了する必要があります。
- MSBuild コマンド ライン、チーム ビルド、または Visual Studio 2010 を使用して、Web 展開パッケージを作成します。
- Web パッケージを宛先の Web サーバーにコピーします。
- IIS マネージャーのアプリケーション パッケージのインポート ウィザードを使用して、Web パッケージをインストールし、接続文字列やサービス エンドポイントなどの変数の値を指定します。
このトピックでは、これらの手順を実行する方法について説明します。 このトピックのタスクとチュートリアルでは、Web パッケージ、Web 配置、WPP の背後にある概念を既に理解していることを前提としています。 詳細については、「Web アプリケーション プロジェクトのビルドとパッケージ化」を参照してください。
Note
このトピックは、必要なコンポーネントをインストールし、パッケージのインポート用に IIS Web サイトを準備する方法について説明する、Web 配置発行の Web サーバーの構成 (オフライン展開) に関する記事と併せて利用することをお勧めします。
Web 展開パッケージを作成する
最初のタスクは、展開する Web アプリケーション プロジェクト用の Web 展開パッケージを作成することです。 Web パッケージは、さまざまな方法で作成できます。
方法 1: Visual Studio を使用してビルド プロセスの一環としてパッケージを作成する
プロジェクトのプロパティ ページの [Web のパッケージ化/公開] タブを使用して、ビルドの後に毎回 Web 展開パッケージを作成するように、Web アプリケーション プロジェクトを構成できます。 このプロセスについては、「Web アプリケーション プロジェクトのビルドとパッケージ化」で説明されています。
方法 2: MSBuild を使用してビルド プロセスの一環としてパッケージを作成する
カスタム MSBuild プロジェクト ファイルを使用するか、またはコマンド ラインから、MSBuild を直接使用して Web アプリケーション プロジェクトをビルドする場合は、DeployOnBuild=true および DeployTarget=Package プロパティをコマンドに含めて、ビルド プロセスの一環として Web 展開パッケージを作成できます。 このプロセスについては、「ビルド処理について理解する」で説明されています。
方法 3: Visual Studio でオンデマンドでパッケージを作成する
Visual Studio 2010 で、Web アプリケーション プロジェクトの Web 展開パッケージをいつでも作成できます。 これを行うには、[ソリューション エクスプローラー] ウィンドウで Web アプリケーション プロジェクトを右クリックし、[Build Deployment Package] (展開パッケージの作成) をクリックします。
方法 4: コマンド ラインからオンデマンドでパッケージを作成する
MSBuild を使用して Web アプリケーション プロジェクトで Package ターゲットを呼び出して、コマンド ラインから Web 展開パッケージを作成できます。 コマンドは次のようになります。
MSBuild.exe [Path to your project].[csproj/vbproj] /T:Package
どの方法を使用しても、最終的な結果は同じです。 WPP では、Web アプリケーション プロジェクトの出力フォルダーに、さまざまなサポート リソースと共に Web 展開パッケージを ZIP ファイルとして作成します。
Web パッケージを手動でインポートしようとしている場合は、ZIP ファイルのみが必要です。 このファイルをターゲットの Web サーバーにコピーすると、インポート プロセスを開始できます。
Web パッケージを IIS にインポートする
次の手順を使用すると、ローカル ファイル システムから IIS Web サイトに Web 展開パッケージをインポートできます。 この手順を実行する前に、次のことを確認してください。
- Web 展開パッケージを Web サーバーにコピーした。
- アプリケーションをホストするように IIS Web サーバーを構成した。
Web 展開パッケージをサポートするように IIS Web サーバーを構成する方法の詳細については、Web 配置発行の Web サーバーの構成 (オフライン展開) に関する記事を参照してください。
IIS マネージャーを使用して Web 展開パッケージをインポートするには
IIS マネージャーの [接続] ウィンドウで、IIS Web サイトを右クリックし、[展開する] をポイントして、[アプリケーションのインポート] をクリックします。
[Import Application Package] (アプリケーション パッケージのインポート) ウィザードの [Select the Package] (パッケージの選択) ページで、Web 展開パッケージの場所を参照し、[次へ] をクリックします。
[Select the Contents of the Package] (パッケージの内容の選択) ページで、不要なコンテンツをクリアし、[次へ] をクリックします。
Note
多くの場合、Web 展開パッケージに付属するすべての内容をインポートするわけではありません。 たとえば、Web 配置に、関連するデータベースの置き換えを許可したくない場合があります。
[アクセス許可の付与] エントリでは、宛先ファイル システムに対するアクセス許可を設定して、アプリケーション プール ID で、Web サイトのコンテンツを保存する物理フォルダーにアクセスできるようにします。 さらに、匿名認証ユーザーにはそのフォルダーへの読み取りアクセス許可が付与され、アプリケーションが Multipurpose Internet Mail Extensions (MIME) タイプ ファイルに対応できるようにします。 必要に応じて、これらのエントリを削除し、アクセス許可を手動で構成できます。[Enter Application Package Information] (アプリケーション パッケージ情報の入力) ページで、要求された情報を指定します。
Web パッケージを作成する際に、WPP では、アプリケーションの構成ファイルを分析し、接続文字列やサービス エンドポイントなどの変数を検出します。 この場合、次のようになります。
[アプリケーション パス] は、アプリケーションをインストールする IIS パスです。 この設定は、WPP によって作成されるすべての展開パッケージに共通です。
[ContactService Service Endpoint Address] (ContactService サービス エンドポイントのアドレス) は、アプリケーションで、展開された WCF サービスとの通信に使用する必要があるアドレスです。 この設定は、web.config ファイル内のエントリに対応します。
最初の [接続文字列] の設定は、Web 配置で、アプリケーションに関連するデータベース (この場合は ASP.NET メンバーシップ データベース) を展開するために使用する必要がある接続文字列です。 この設定は、Visual Studio の [SQL のパッケージ化/公開] タブの設定に対応します。
2 番目の [接続文字列] の設定は、アプリケーションで、その稼働時に、データベースとの通信に実際に使用される接続文字列です。 これは、web.config ファイル内の接続文字列エントリに対応します。
Note
これらのパラメーターの取得元の詳細については、「Web パッケージ展開のパラメーターを構成する」を参照してください。
次へ をクリックします。
この Web サイトにアプリケーションを展開するのが初めてではない場合は、インストール前に既存のすべてのコンテンツを削除するかどうかを指定するように求められます。 要件に適したオプションを選択し、[次へ] をクリックします。
IIS でパッケージのインストールが完了したら、[終了] をクリックします。
この時点で、Web アプリケーションは IIS に正常に発行されました。
まとめ
このトピックでは、IIS マネージャーを使用して IIS Web サイトに Web 展開パッケージをインポートする方法について説明しました。 この Web アプリケーション発行方法は、セキュリティまたはインフラストラクチャの制約によってリモート展開が不可能または望ましくない場合に適しています。
もっと読む
Web パッケージの手動インポートをサポートするように IIS Web サーバーを構成する方法のガイダンスについては、Web 配置発行の Web サーバーの構成 (オフライン展開) に関する記事を参照してください。 Web パッケージの展開に関するより一般的なガイダンスについては、「チュートリアル: Web 展開パッケージを使用して Web アプリケーション プロジェクトを展開する (パート 1/4)」を参照してください。