Visual Studio および ASP.NET の Web アプリケーション プロジェクトの配置の概要

このトピックでは、他のインターネット上のアプリケーションにアクセスできるサーバーに配置する) (Visual Studio Web アプリケーション プロジェクトを発行するために必要なタスクの概要を説明します。

ここでは、次の製品に適用されます:

このトピックは、次のセクションで構成されています。

  • 一般的な配置シナリオ

  • 基本的な配置タスク

  • Visual Studio の構成のデータベースの配置

  • そのほかの配置タスク

  • バックアップや復元

ここに示された Web アプリケーション プロジェクトにのみタスクの一部を適用します。 Web サイト プロジェクトを配置する方法の詳細については、Visual Studio および ASP.NET の Web 配置コンテンツ マップを参照してください。

一般的な配置シナリオ

ワンクリック発行 または 配置パッケージを使用して Web アプリケーション プロジェクトを配置できます:

  • ワンクリック発行は、ボタンをクリックして、Visual Studio IDE から直接配置できる Visual Studio の機能について説明します。 Visual Studio は、配置先サーバーに接続し、プロジェクト ファイルをコピー、およびそのほかの配置タスクを実行します。

  • Web 配置パッケージが配置に必要なすべての情報を含む .zip ファイルです。 コマンド ラインまたは IIS マネージャーを使用してコマンド ラインから、または Visual Studio のパッケージをインストールし、配置先サーバーでは作成します。

使用するメソッドは、のシナリオおよび個人の条件によって異なります。 ワンクリック発行は、通常、継続的インテグレーションの (CI) の開発プロセスを実行する小さい組織に最適です。 アプリケーションが共有ホスト環境でも、専用サーバーで実行されているホスティング プロバイダーに通常、配置します。 (共有ホスト環境で、複数のホスティング プロバイダーのクライアントのサイトをホストするために一つのサーバーが使用されます。)

サード パーティのホスティングによる一般的な配置シナリオ

エンタープライズ環境では、インターネットに接続している、通常、CI なプロセスを実装して独自のプロバイダーのサーバーに配置し、通常。 アプリケーションでは、テストおよびステージング環境を使用して、稼動環境に配置する前に上位変換されます。 これらのシナリオでは、テスト環境に配置する際にワンクリック発行を使用できますが、稼動環境によって異なるへの進行の場合、配置パッケージは、一般的に使用されます。 配置パッケージはパッケージを作成およびインストールのコマンド ラインを使用して CI プロセスに統合されてからはエンタープライズ シナリオに適しています。

エンタープライズにおける Web 配置の一般的なシナリオ

サードパーティのホスティングとエンタープライズ シナリオの両方を使用 Windows Azureして、クラウド Web アプリケーションをホストする場合にも適用されます。 Windows Azure では、アプリケーションは共有ホスト環境または専用の仮想マシンで実行できます。

基本的な配置タスク

サードパーティのホスティング プロバイダーに配置する必要がある基本的なタスクの例を次に示します:

  1. ホスティング プロバイダーのアカウントを設定します。

    Visual Studio からの自動配置をサポートするホスティング プロバイダーについては、ASP.NET のホスト" "を参照してください。 自分の Web プロジェクトが対象とする ASP.NET のバージョンをサポートするプロバイダーを選択してください。

  2. 発行プロファイルを作成します。

    発行プロファイルは、データベース サーバーに配置するログオンのために、に配置するサーバー、資格情報などのオプションを指定します。 ホスティング プロバイダーは、発行プロファイルに必要な電子メールや、Visual Studio にインポートできるファイルの設定を送信します。

  3. ワンクリック発行のボタンをクリックして配置プロセスを開始します。

    発行 のボタンは、発行プロファイルを作成するために使用する Web の発行 ウィザードにあります。 これは、Visual Studio の 表示ツール バー のメニューから選択できる Web の 1 クリック発行 のツール バーで使用できます。

このプロセスを持つジェネリック パラメーター ヘルプを表示するには、方法: Visual Studio でワンクリック発行を使用して Web アプリケーション プロジェクトを配置するを参照してください。 Visual Studio から配置のエンド ツー エンドのシナリオを通じてルーティング 12 部のチュートリアルでは、ASP.NET サイト ホスティング プロバイダーへの配置 の" "を参照してください。

注意

既定では、Visual Studio 2012、ASP.NET 4.5 を対象とする Web プロジェクトを作成します。ASP.NET 4.5 をサポートしないホスティング プロバイダーに ASP.NET 4.5 プロジェクトを配置すると、アプリケーションは実行されません。このエラーを解決するには、サーバーに配置されたディレクトリをすべて削除する必要があります。詳細については、ホスティング プロバイダーへの配置: トラブルシューティング" "を参照してください。

エンタープライズ配置のシナリオでは、ASP.NET サイトのチュートリアル エンタープライズ シナリオの Web アプリケーションの配置 シリーズを参照してください。 エンタープライズ配置のチュートリアルは Visual Studio 2010 に書き込まれ、Visual Studio 2012についてまだ更新されていません。

Visual Studio の構成のデータベースの配置

Visual Studio は、自動化されたデータベース配置の 3 とおりの方法が用意されています:

  1. Entity Framework の Code First の移行

  2. dbDacFx Web 配置プロバイダー

  3. dbFullSql Web 配置プロバイダー

この 3 種類のメソッドは、Web 配置の発行方法としてを選択する場合にのみ使用できます。 別の発行メソッドを、FTP、ファイル システム、FPSE) を使用すると、Visual Studio の外部でのデータベースの配置を処理する必要があります。 SQL Server データベースを手動で配置する方法については、次のリソースを参照:

Dd394698.collapse_all(ja-jp,VS.110).gifEntity Framework の Code First の移行

Entity Framework Version 4.3 では、は Microsoft Code First の移行を説明しました。 Code First の移行はデータ モデルに大きく変更を加えるとデータベースに変更を反映するプロセスを自動化します。 Code First の以前のバージョンでは、データ モデルを変更するたびに、通常、Entity Framework がデータベースを削除して再作成ようにします。 これは、テスト データが簡単に再作成が、通常、運用データベースを削除してデータベース スキーマを更新する場合、開発の問題ではありません。 移行機能は、を削除して再作成せずにデータベースの更新を Code First ができます。 必要なスキーマの変更を行う方法を Code First が決定するように自動的にしたり、変更をカスタマイズするコードを記述できます。 Code First の移行の概要については、Code First の移行" "を参照してください。

Visual Studio は、Code First の移行によって管理されるデータベースを配置するプロセスを自動化できます。 発行プロファイルを構成すると、実行します。Code First の移行 (アプリケーションの起動時に) を実行とチェック ボックスをオンにします:

Publish_Web_Settings_tab_with_cf_database_high

このチェック ボックスは、データベースに対して Entity Framework の Code First コンテキスト クラスを使用してアクセスするアプリケーションの示します。 このオプションを選択すると、配置プロセスが自動的に Code First が MigrateDatabaseToLatestVersion の初期化子のクラスを使用するように、配置先サーバー アプリケーションの Web.config ファイルを構成します。 次の図は、この設定値が Web.config ファイルをの外観の例を示します:

Web.config の MigrateDatabaseToLatestVersion

Code First の移行を実行します。 の選択と、配置プロセスは、対象の Web.config ファイルに追加の接続文字列を設定します:

Web.config の DatabasePublish 接続文字列

Code First は、データベース スキーマの変更を行う場合は、この追加の接続文字列を使用します。 この接続文字列は、データベースに対する管理アクセスを持つユーザー資格情報を指定する必要があります。 Code First がスキーマを更新するために別の接続文字列を使用するため、アプリケーションの接続文字列のアクセス許可が制限されているユーザー資格情報を指定できます。 詳細については、ASP.NET サイトの" 自動 Web.config を確認して、Code First の移行のように変更されます。 "を参照してください。

Visual Studio は、配置プロセス中にデータベースには何も実行しません。 配置されたアプリケーションを配置した後でデータベースを初めてアクセスするとき、Code First が自動的にデータベースを作成するか、または最新バージョンにデータベース スキーマを更新します。 アプリケーションが移行の Seed のメソッドを実装すると、メソッドはデータベースが作成またはスキーマが更新された後で実行されます。

Visual Studio の Code First の移行の配置を構成する方法の詳細については、方法: Visual Studio でワンクリック発行を使用して Web アプリケーション プロジェクトを配置する とチュートリアル シリーズ Visual Studio を使用しているホスティング プロバイダーまたは Visual Web Developer への ASP.NET Web アプリケーションの配置を参照してください。

Dd394698.collapse_all(ja-jp,VS.110).gifdbDacFx Web 配置プロバイダー

データベースの配置に dbDacFx Web 配置プロバイダーを使用するには、Web の発行 ウィザードの データベースを更新します。 とチェック ボックスをオンにします。 このチェック ボックスは、SQL Server データベースに対して Entity Framework の Code First コンテキスト クラスを使用しなくてもアプリケーションにアクセスできます:示します。

Publish_Web_Settings_tab_with_non_cf_database_

初期配置中に、dbDacFx プロバイダーは、対象データベースのテーブルおよびソース データベースと一致するように他のデータベース オブジェクトを作成します。 後続の配置では、プロバイダーは、ソースとターゲット データベースの間で異なる場合、ソース データベースと一致するように、コピー先のデータベースのスキーマを更新内容を確認します。 既定では、プロバイダーはテーブルまたは列がドロップダウンしたときに、データが失われるのような変更を行いません。

このオプションは、配置時に対象データベースで実行する独自のカスタム SQL スクリプトを指定することができます。 たとえば、プロバイダーがテーブルを作成した後、最初のテーブルにデータを挿入するカスタム スクリプトを実行できます。 またはによってデータが失われるため、自動的にできないスキーマを変更するカスタム スクリプトを実行できます。

このデータベースの配置方法は、Web 配置 3.0 および dbDacFx プロバイダーが配置先 Web サーバーにインストールする必要があります。 (これらは配置先データベース サーバーにをインストールする必要はありません)。

dbDacFx プロバイダーは、オペレーティング システムが Windows XP と Windows Server 2003 などの Windows Vista SP2 より、前に使用しません。 これらのオペレーティング システムのデータベースの配置の場合、dbFullSql Web 配置プロバイダーを使用します。

dbDacFx プロバイダー、Web 配置 3.0 および配置先 Web サーバーのインストール方法 dbDacFx プロバイダーを使用してデータベースを配置する方法の詳細については、方法: Visual Studio でワンクリック発行を使用して Web アプリケーション プロジェクトを配置するを参照してください。

Dd394698.collapse_all(ja-jp,VS.110).gifdbFullSql Web 配置プロバイダー

dbFullSql Web 配置プロバイダーを使用するには、プロジェクト プロパティ ウィンドウの SQL のパッケージ化/発行 のタブのデータベースの配置設定を構成します。 このデータベースの配置方法は、Visual Studio 2010 SP1 以降に使用できます。 dbFullSql プロバイダーは、データベース スキーマの初期配置し、データを必要に応じて、スキーマを配置できます。 このプロバイダーは、データベースの配置をインクリメントしません。 既存のデータベースにスキーマ更新を配置するには、このプロバイダーを使用する場合は、配置プロバイダーが既に存在するテーブルを作成できるようにするため失敗します。

dbFullSql プロバイダーは Windows XP または Windows Server 2003 のオペレーティング システムを使用している場合にになる必要があるレガシ データベースの配置のメソッドで特定のシナリオだけ必要な場合にのみ使用できます。 dbFullSql プロバイダーを使用するデータベースの配置を構成する方法については、ASP.NET サイトの プロジェクト プロパティの [パッケージ/SQL の発行] タブSQL Server への移行 参照してください。

そのほかの配置タスク

アプリケーションのシナリオまたは機能によって、そのほかの配置タスクが要求または勧められる場合があります。 共通のものの一覧を次に示します。:

  • Web.config の変換を構成します。

    アプリケーションの Web.config ファイルが配置されたアプリケーションで変更する必要がある設定を含める場合があります。 たとえば、開発時に、通常、デバッグを有効にし、運用の無効にします。 詳細については、ASP.NET サイトと Visual Studio を使用する Web アプリケーション プロジェクト配置の Web.config 変換構文参照 Web.config ファイルの変換 してください。

  • すべてのファイルとフォルダーが配置先サーバーにコピーするかを指定します。

    既定では、Visual Studio は、アプリケーションを実行するために必要なファイルのみを配置します。 このオプションは、ほとんどのシナリオでは問題なく動作しますが、特別な要件がある場合があります。 たとえば、これらのファイルが開発でのみ使用され、App_Data フォルダーにデータベース ファイルを削除する必要があります。 詳細については、ASP.NET サイトと プロジェクト プロパティの [パッケージ/Web の発行] タブ参照 プロジェクトの構成プロパティ してください。

  • 配置先サーバーのフォルダーのアクセス許可を設定します。

    アプリケーションは、のプロジェクト フォルダーの一部に必要な書き込みアクセス許可になる可能性があります。 たとえば、アプリケーションがユーザーがファイルをアップロードできる場合、アップロードされたファイルを保存するフォルダーへの書き込みアクセスが必要です。 アプリケーションの配置後に配置プロセスの一環としては、それらのアクセス許可を構成する必要があります。 詳細については、ASP.NET Web サイト 設定のフォルダーのアクセス許可 の" "を参照してください。

  • プロジェクトをプリコンパイルします。

    既定では、.aspx ファイルと .ascx のページは、Web アプリケーション プロジェクトでプリコンパイルされます。 その代わり、で最初に要求されたときにコンパイルされます。 きわめて大きなアプリケーションでは、このプロセスは配置後に必要な最初に重要となる Web ページ、わずかな遅延が発生する可能性があります。 Web アプリケーション プロジェクトのコンパイルとマージ オプションの詳細については、およびプロパティを指定する方法を プロジェクト プロパティの [パッケージ/Web の発行] タブ[プリコンパイルの詳細設定] ダイアログ ボックスを参照してください。

  • 配置時にアプリケーションをオフラインにします。

    配置中にアプリケーションをユーザーに使用できるたくない場合もあります。 これは、あるアプリケーション コードを実行する可能性があるため、データベースの更新を配置するときに同じです、データベースと同期します。 一時的にアプリケーションをオフライン方法の詳細については、Visual Studio および ASP.NET の Web 配置コンテンツ マップMaking sure an application is off-line during deployment を参照してください。

  • 稼動環境に配置する前に稼動環境と同様のサイトをテストします。

    稼働環境に配置した後にのみ、通常はテストできるようにする稼動環境と同様に似た環境でアプリケーションを表示できます検索の可能性を減らすことで。 運用サーバーに配置する前にそのためには、で、ホスティング プロバイダーで開発用コンピューターの IIS に、ステージング サーバー、またはテストのアカウントに配置できます。 詳細については、ASP.NET サイトの" テスト環境として IIS への配置 "を参照してください。

  • Visual Studio UI で公開されていない配置設定を構成します。

    Visual Studio UI は、ユーザーが設定できる配置の設定を公開しません。 たとえば、配置から個別のフォルダーを除外するために UI を使用できません。 ただし、構成設定を格納するファイルの編集することもできます。 各発行プロファイルの目的では直接編集できる .pubxml のファイルがあります。 すべての発行プロファイルに適用する配置設定を構成する場合は、.wpp.targets ファイルを作成できます。 詳細については、「方法: Visual Studio Web プロジェクトで、発行プロファイル (.pubxml) ファイルおよび .wpp.targets ファイルの配置設定を編集する」を参照してください。

  • ASP.NET MVC のバイナリ ファイルがサーバーにコピーされることを確認します。

    ASP.NET MVC のか、の対象バージョンをサポートしないホスティング プロバイダーに配置する場合は、プロジェクト内の適切な MVC 3 または MVC 4 NuGet パッケージをインストールされていることを確認します。

  • SQL Server Compact 4.0 のバイナリ ファイルがサーバーにコピーされることを確認します。

    SQL Server Compact 4.0 をサポートしないホスティング プロバイダーに配置する場合は、プロジェクト内の NuGet SqlServerCompact パッケージをインストールされていることを確認します。 また、プロジェクトに bin \ bin \ x86 および amd64 フォルダーを含める必要があります。 詳細については、SQL Server Compact データベースの配置" "を参照してください。

バックアップや復元

既存のサイトに更新を配置する前に、何がうまくいかなかったら元の状態にアプリケーションを復元できるようにロールバックの計画を作成します。 考慮する必要のある点は、以下が含まれています:

  • サイトで使用されるコードとリソースをすべてバックアップしてください。

    注意事項

    サーバーへの配置によって、プロジェクト内のバックアップを作成していると仮定しないでください。配置がサーバーにそのコピーする前にアセンブリにコンパイルされるソース・コード。

  • 更新プログラムがデータベースの変更が含まれている場合は、[キャンセル]のデータベースの変更のロールバック計画を作成します。 万が一にロールバック スクリプトをあらかじめ作成する必要があります。 他のアプリケーションで同じデータベースを使用してすべてのデータが変更されるたびにに入力された場合、または配置後にロールバックの場合の前にまたはかまいませんが、または事項について考えたりする場合があります。

  • アプリケーションが他のアプリケーションとやり取りする場合は、その理由について場合の処理をロールバックする更新を指定する、ロールバックの計画を作成します。

参照

概念

Visual Studio および ASP.NET の Web 配置コンテンツ マップ