方法: Visual Studio でワンクリック発行を使用して Web アプリケーション プロジェクトを配置する

ここでは、次の製品に ワンクリック発行を 使用して (配置) Web アプリケーション プロジェクトを発行する方法を示しています:

次のいずれかにを配置できます:

  • ホスティング プロバイダーにします。

  • テスト環境として開発用コンピューターに IIS で。

  • 企業内ネットワーク サーバーにします。

Visual Studio の Web アプリケーション プロジェクトの配置を構成するには、Web の発行 ウィザードを使用して一つ以上の発行 プロファイルを 作成します。 発行プロファイルは、に配置するサーバー、サーバーに配置するデータベースのログオンに必要な資格情報、およびそのほかの配置オプションを指定します。 発行する準備ができると、ウィザードまたは Web の 1 クリック発行 のツール バーの 発行 のボタンを使用するプロファイルを選択します。

Web サイトを配置すると、多くの場合、プロファイルを作成する以外の追加の準備作業が必要です。 このトピックでは、ができるようにする必要があるそのほかのタスクに関する情報は含まれません。 たとえば、Web のパッケージ化/発行 のタブで、発行プロファイルにコンパイルおよびマージ オプションを指定します。 詳細については、「Visual Studio および ASP.NET の Web アプリケーション プロジェクトの配置の概要」を参照してください。

発行プロファイルの作成

多くのホスティング プロバイダーは発行プロファイルを作成するプロセスを簡略化するために使用できる .publishsettings ファイルを提供します。 .publishsettings ファイルを使用するときは開始する前に、の最新バージョンがあることを確認します。 SQL Server データベースを使用せずに最初にアカウントを作成し、後から追加する場合は、(接続文字列が含まれていることを確認するために必要です。たとえば .publishsettings の最新バージョンをダウンロードする必要があります)。

発行プロファイルを作成するには

  1. ソリューション エクスプローラーで、プロジェクトを右クリックし、Web の発行 ウィザードを開くに 発行 を選択します。

    プロファイルをまだ作成されていない場合、ウィザードは プロファイル のタブに表示されます。 それ以外の場合は プレビュー のタブに表示されます。 この場合、新しいプロファイルを作成するには、最初に プロファイル のタブをクリックする必要があります。

    Publish_Web_Profile_tab

    プロファイル のタブの プロファイルの管理 のボタンに注意してください。 プロファイルを作成した後、その名前を変更または削除するには、このボタンを使用できます。

  2. .publishsettings ファイルがあるかどうか、次の手順のいずれかを 1 には、を実行します:

    .publishsettings をインポートしてプロファイルを作成するにはファイル。

    1. [インポート] をクリックします。

      発行の設定のインポート のダイアログ ボックスが表示されます。

      Import_Publish_Settings

    2. .publishsettings ファイルを選択し、開くをクリックします。

    .publishsettings なしでプロファイルを作成するにはファイル。

    • In the 発行プロファイルを選択するか、またはインポート のドロップダウン リストで、**<New …>**を選択し、新しいプロファイル のダイアログ ボックスでプロファイルの名前を入力します。

      Publish_Web_Profile_tab_selecting_New

      New_Profile_dialog_box

接続のタブの構成

Web の発行 ウィザードは 接続 に自動的にタブを進めます。

Publish_Web_Connections_tab_default_values

.publishsettings ファイルを使用する場合は、このタブのフィールドは既に格納されます。 その場合は、この手順と、接続を検証します。を省略してください。

接続のタブを構成するには

  1. 発行方法 のリストから値を選択します。

    Web 配置は最も幅の広い範囲の配置タスクを自動化できるため、推奨される発行方法です。 ただし、このメソッドを選択する前に、がサポートするために Web 配置を拡張しているサーバーまたはホスティング プロバイダー確認します。

    Web 配置を選択し、テストの IIS のコンピューターに手動で発行する場合は、そのコンピューターの管理者権限を持つ Visual Studio を管理者モードで実行されている必要があります。 (管理者モードで Visual Studio を開くには、Windows のメニューの 開始 Visual Studio のアイコンを右クリックし、管理者として実行を選択します。

    Web 配置を選択するとサーバーのネットワークが完全に発行する場合は、サーバーが Web 配置エージェント サービス (MSDepSvc、またはリモート エージェント サービス) 用に設定され、配置先サーバーの管理者権限があることを確認します。 配置先サーバーの設定方法の詳細については、Microsoft TechNet Web サイト Web 配置リモート サービス の" "を参照してください。

    Web 配置の発行方法としてを選択すると、スクリーンショット、このトピックの手順のほとんどは想定しています。 Web 配置をサポートしないホスティング プロバイダーに配置する場合、FTP を選択することもできます。 次の手順の一部のこの場合、命令は異なります。 サービス URLサイトやアプリケーション のフィールドは、FTP または FTPS の URL を入力する 対象の場所 のフィールドに置き換えられます。 匿名ログオンが許可された場合、ユーザー名とパスワードを入力する必要はありません。 受動モードが必要な場合は、発行プロファイル (.pubxml) ファイルを編集し、trueに FtpPassiveMode の要素の値を変更します。 受動モードについては、.pubxml ファイルを編集する方法の詳細については FTP-Deployed Web Sites方法: Visual Studio Web プロジェクトで、発行プロファイル (.pubxml) ファイルおよび .wpp.targets ファイルの配置設定を編集する、" "を参照してください。

    発行方法 の選択項目の 1 つが Web 配置パッケージです。 配置パッケージを作成するには 方法: Visual Studio で Web 配置パッケージを作成するを参照してください。

  2. サービス URL ボックスに、アプリケーションを発行するには、Web 配置を使用して URL を入力します。

    ホスティング プロバイダーに発行する場合は、会社は、この値を指定します。 これは、次の形式のいずれかである可能性があります:

    テストの IIS のコンピューターに手動で発行する場合は、コンピューターの localhost または名前を入力します。

    サーバーのネットワークが完全に発行する場合は、次の URL の 1:入力します。

    • https://ServerName

    • https://ServerName/msdeployagentservice

  3. サイトやアプリケーション ボックスに、IIS Web サイトとアプリケーションの名前を入力します。

    ホスティング プロバイダーに発行する場合は、会社は、この値を指定します。 これは通常、ドメイン名 (たとえば、contoso.com) またはドメイン名とアプリケーション名 (たとえば、contoso.com/MyApplication) です。

    は、の内部ネットワーク上のサーバーにテストの IIS のコンピューター自体に発行する場合は、IIS マネージャーに表示されるようにサイトとアプリケーションの名前を入力します。 たとえば、IIS の既定の Web サイトに発行する場合で、アプリケーション名が MyApplication、既定の Web Site/MyApplication "と入力します。

  4. ユーザー名パスワード ボックスに、配置先 Web サーバーで配置タスクを実行するのに十分な権限を持つアカウントの資格情報を入力します。

    ホスティング プロバイダーに発行する場合は、会社は、これらの値を指定します。

  5. パスワードにたびにダイアログを表示できない場合は パスワードの保存 のチェック ボックスを発行し、をクリックします。

    パスワードは PublishProfiles フォルダーの .pubxml.user のファイルで暗号化されて格納されます。 ソース管理を使用する場合、このファイルはソース管理から既定で除外されます。

  6. 配置が完了すると、Visual Studio に自動的に配置されたアプリケーションの URL に、既定のブラウザーを開く場合は、宛先 URL ボックスに URL を入力します。

接続のタブの設定を検証するには

  1. 入力した設定を使用してサーバーに接続することが確認するに 接続を検証します。 をクリックします。

  2. 証明書エラー のダイアログ ボックスが表示された場合は、正しい URL (意図的にチェック サービス URL証明書エラー のダイアログ ボックスのサーバー名) に公開されていることを確認します。 設定が正しい場合は、同じエラー メッセージが再び取得選択し、**証明書を受け入れます。**を選択するようにを Visual Studio の今後のセッションでこの証明書を保存します。。 (このエラーは、配置する URL の SSL 証明書の購入の経費を回避するために、ホスティング プロバイダーが選択されていることを意味します。 有効な証明書を使用して保護された接続を確立する場合、ホスティング プロバイダーに問い合わせてください)。

    Certificate_Error

    Visual Studio が接続ができない場合は、何も、自分のコンピューターから接続 (プロキシやファイアウォールの設定など)、をもう一度試すために妨げていないことを確認します。 まだ接続ができない場合は、ホスティング プロバイダーまたは配置先サーバーを保持するユーザーに問い合わせてください。

設定のタブの構成

接続 のタブで、タブをクリック 設定 に移動 次へ

Publish_Web_Settings_tab_with_cf_and_non_cf_da

設定のタブを構成するには

  1. 構成 のドロップダウン リストで、配置するビルド構成を選択します。

    通常、リリース ビルドを展開します。 デバッグ ビルドは、テスト環境に配置し、その環境でデバッグする必要がある場合にだけ効率的に実行されないので、通常選択されます。

  2. コンピューターの Web プロジェクトで一致するファイルがない配置先サーバー上のファイルを削除する場合は、コピー先の削除の追加ファイル のチェック ボックスをオンにします。

    注意

    このオプションを選択した場合、事前に表示されるようにプレビュー機能を使用してくださいファイルを配置する前に削除されます。予期される動作は、Web 配置では、プロジェクトで削除した配置先サーバー上のファイルを削除することです。ただし、コピー元とコピー先のフォルダーの下のフォルダー構造が比較され、シナリオによっては、Web 配置は、削除しないファイルを削除する場合があります。

    ルート フォルダーにプロジェクトを配置する場合は、たとえばサーバーのサブフォルダーに Web アプリケーションがある場合、そのサブフォルダーは削除されます。contoso.com でメイン サイトの 1 種類のプロジェクトと contoso.com/blogのブログの別のプロジェクトがある場合があります。ブログ アプリケーションはサブフォルダーにあります。メイン サイトを配置する場合 コピー先の削除の追加ファイル を選択すると、ブログ アプリケーションは削除されます。

    別の例については、App_Data フォルダーが予期せずに削除される可能性があります。App_Data フォルダー内の SQL Server Compact データベース ストアのファイルなどの特定のデータベース。Web のパッケージ化/発行 のタブの App_Data を除外する を選択するために、データベース ファイルは、以降の配置、でコピーした継続しない初期配置後。とすると、コピー先の削除の追加ファイル を選択している場合は発行するときに、データベース ファイルと App_Data フォルダー自体は削除されます。

設定のタブの構成のデータベース

設定 のタブの データベース のセクションでは、FTP、ファイル システム、および FPSE の発行メソッドとして示されていません。 これらのメソッドのうち 1 つがを選択した場合は、次の手順を省略し、データベースを手動で配置します。 詳細については、「Visual Studio および ASP.NET の Web アプリケーション プロジェクトの配置の概要」を参照してください。

Web 配置の発行方法としてを選択すると、プロジェクトで使用する各データベースについては、1 エントリが表示されます。 図は 2 種類のデータベースを使用するプロジェクトを示します。

Publish_Web_Settings_tab_with_cf_and_non_cf_da

プロジェクトが使用するデータベースがない場合、Web.config ファイルでの接続文字列が含まれていることを確認します。 設定 のタブでは、Web.config ファイルの接続文字列または Entity Framework の Code First コンテキスト クラスによって識別されるデータベースを示します。

注意

[SQL のパッケージ化/発行] タブで構成したすべてのデータベースを含める のチェック ボックスがオフの場合、ここに入力されたデータベースの配置設定は無効です。「プロジェクト プロパティの [パッケージ/Web の発行] タブ」を参照してください。

この一覧に表示される各データベースの次の手順を実行します。

設定のタブのデータベースを構成するには

  1. 接続文字列ボックスに、配置先データベースを指す接続文字列を選択するか入力します。

    コンボ ボックスはデータベースから、に サーバー エクスプローラーで接続があり、プロジェクト内の他の発行プロファイルから送られた .publishsettings ファイルから接続文字列 (プロファイルを作成するために 1 を使用している場合は) 含まれています。 これらの 1 種類を選択するか、接続文字列を手動で入力するか、対象の接続文字列 のダイアログ ボックスを開くか、省略記号をクリックできます。

    Destination_Connection_String_dialog_box

    接続文字列が Entity Framework の Database First またはモデルファーストにアクセスするには、データベースの接続文字列の完全な Entity Framework のバージョンをここに指定しないでください。 Visual Studio は、配置を実行するために、ここに入ります接続文字列を使用して、配置された Web.config ファイルに設定する Entity Framework の接続文字列を作成します。

  2. 実行時にアプリケーションで使用するために入力した接続文字列が不要な場合は 実行時にこの接続文字列を使用します。 のチェック ボックスをオフにします。

    実行時にこの接続文字列を使用します。 のチェック ボックスをオンにすると、配置プロセスは、ボックスにある値に配置される Web.config ファイルでこのデータベースの接続文字列を変更します。 ほとんどのシナリオでは、これはに最適な方法ですが、場合によっては制限されたアクセス許可のデータベースに接続するアプリケーションが必要な場合もあります。 その場合は、このチェック ボックスをオフにし、実行時にする処理を配置する Web.config ファイルの接続文字列を変更する Web.config の変換を作成します。 Web.config の変換を設定する方法の詳細については、ASP.NET Web サイト Web.config ファイルの変換 の" "を参照してください。

  3. データベースへのアクセスに Entity Framework の Code First コンテキスト クラスを使用すると、データベース スキーマとデータベースに更新を配置するために使用 Code First の移行 できます。 これを行うには、実行します。Code First の移行 (アプリケーションの起動時に) を実行を選択します。

    Publish_Web_Settings_tab_with_cf_database_high

    データベースの配置に Code First の移行を使用すると、実際の配置プロセス中にデータベースで実行されません。 ただし、配置プロセスでは、Code First の移行が MigrateDatabaseToLatestVersion の初期化子のクラスを使用するようにターゲット Web サイトの Web.config ファイルが更新されます。 アプリケーションを配置した後でデータベースを初めてアクセスする場合、移行は自動的にデータベースを作成するか、または最新バージョンにデータベース スキーマを更新します。 アプリケーションが移行の Seed のメソッドを実装すると、メソッドはデータベースが作成またはスキーマが更新された後で実行されます。

    注意

    アプリケーションが環境の Medium 信頼で実行される場合 (ほとんどのサードパーティのホスティング プロバイダーの場合は、配置する)、Entity Framework Version 5 以降を使用していることを確認します。EF は 4.3 と 5 の EF プレリリース バージョンは完全信頼がデータベース スキーマの更新を行う必要があります。ASP.NET 4 以降のバージョンを対象とするプロジェクトで EF 5 を使用できます。

    DbMigrationsConfiguration のクラスを実装した場合にのみ、このオプションを使用できます。 DbMigrationsConfiguration のクラスがある場合にエラー メッセージに示されている場合、データベース配置の構成が完了する前に、Code First の移行を有効にする必要があります。

    プロジェクトがを実装する場合は、複数の DbMigrationsConfiguration は、コンテキスト クラスに対して発行プロファイルのこのデータベースの配置を構成できません並べ替えます。 データベースを手動で配置する方法の詳細については、" "を参照してください。Code First の移行

    接続文字列]ボックスに入力した接続文字列の資格情報は管理ユーザー アカウントを表す必要があります。 データベースの変更を配置するときに、データベース スキーマを更新するために配置するときに、この接続文字列は、データベースを作成するために使用します。 制限されたアクセス許可での実行時にデータベースにアクセスするアプリケーションを作成するときは 実行時にこの接続文字列を使用します。 のチェック ボックスをオフにし、実行時に使用するアプリケーションで使用する接続文字列を指定する Web.config の変換を作成します。 詳細については、ASP.NET サイトの" 自動 Web.config を確認して、Code First の移行のように変更されます。 "を参照してください。

    SQL Server Compact データベースを展開し、データベースの接続文字列が Web.config ファイルにある場合は、追加の接続文字列を作成するには、Web.config の変換を構成する必要があります。 Code First は、データベース スキーマを更新するときにこの接続文字列を使用します。 (しない場合は、この接続文字列を手動で作成すると、Visual Studio で自動的に作成されますが、自動的に作成した接続文字列に providerName の不適切な値があります)。この変換の XML は次の例のようになります。:

    <connectionStrings>
      <add name="[contextclassname]_DatabasePublish" connectionString="[connectionstring]" providerName="System.Data.SqlServerCe.4.0" xdt:Transform="Insert"/>
    </connectionStrings>
    

    移行を使用して Code First、データベースを配置しない場合は、Visual Studio および ASP.NET の Web アプリケーション プロジェクトの配置の FAQHow do I deploy a Code First database without using Migrations? を参照してください。

  4. データベースへのアクセスに Code First コンテキスト クラスを使用していない場合は、そのが SQL Server データベース、およびアプリケーションとともにデータベースを配置する場合は、**データベースを更新します。**を選択します。

    Publish_Web_Settings_tab_with_non_cf_database_

    このオプションは dbDacFx Web 配置プロバイダーを使用します。 初期配置中に、データベース スキーマが作成されます。 後続の配置時に、配置先データベースは、ソース データベースと比較され、ソース データベースと一致するように、コピー先のデータベース スキーマが更新されます。

    データベース テーブルのデータが自動的に配置されません。 データをコピー先のデータベースに配置して、カスタム データベース スクリプトを作成し、自動[スキーマ更新] のスクリプトの実行後に配置中に実行されるように構成する必要がある場合は、次の手順に従って。

    既定では、dbDacFx プロバイダーは自動的にデータが失われる列またはテーブルを削除のようなスキーマの変更は行いません。 プロバイダーがデータが失われるスキーマの変更を検出すると、配置は失敗し、理由は、Visual Studio の 出力 のペインに表示されます。 その場合は、必要なスキーマ更新を実行するカスタム スクリプトを作成し、次の手順に示すように 自動[スキーマ更新] のスクリプトの実行前に実行するように構成します。 配置時にスクリプトを実行する代わりとしてプロジェクトを発行する前に、SQL Server オブジェクト エクスプローラー の配置先データベースに接続し、データベースを対話的に更新できます。

    ホスティング プロバイダーに配置する場合は、ホスティング プロバイダーが Web 配置 3.0 およびサーバーにインストール dbDacFx プロバイダーを持っていることを確認します。 会社のネットワークの Web サーバーに配置する場合は、Web 配置および 3.0 Web サーバーの dbDacFx プロバイダーをインストールするには、以下のリンクを使用します。

    このソフトウェアは配置先 Web サーバーでのみ、対象データベース サーバーに必要です。 開発用コンピューターの IIS に配置する場合 Visual Studio 2012、Visual Studio Express 2012 for Web、または Visual Studio Web 発行の更新プログラム に既定でインストールされるため、このソフトウェアをインストールする必要はありません。

    接続文字列]ボックスに入力した接続文字列の資格情報は管理ユーザー アカウントを表す必要があります。 データベースの変更を配置するときに、データベース スキーマを更新するために配置するときに、この接続文字列は、データベースを作成するために使用します。 制限されたアクセス許可での実行時にデータベースにアクセスするアプリケーションを作成するときは 実行時にこの接続文字列を使用します。 のチェック ボックスをオフにし、実行時に使用するアプリケーションで使用する接続文字列を指定する Web.config の変換を作成します。 詳細については、ASP.NET サイトの" 自動 Web.config を確認して、Code First の移行のように変更されます。 "を参照してください。

    プロジェクトに複数のデータベースがありますが、配置されたアプリケーションで 1 回だけデータベースを使用する場合は、1 の対象データベースに、通常、複数のソース データベースを結合できます。 データベースの更新 を選択し、ソース データベースの同じ接続文字列を入力することによってこれを行うことができます。 オブジェクト名の競合がない限り、複数のソース データベースにある同じテーブル名などのデータベースを結合できます。

  5. データベースの更新 を選択し、配置時にカスタム SQL スクリプトを作成する場合を実行する場合は、**データベースの更新を構成します。**をクリックします。

    データベースの更新を構成します。 のダイアログ ボックスが表示されます。

    Configure_Database_Updates_dialog_box

    スクリプト、矢印リストされたスクリプトが配置中に実行するかどうかを示す実行、および順序を変更するには、チェック ボックスを上下に追加するに SQL スクリプトの追加 のリンクを使用します。

    自動[スキーマ更新] ラベルとスクリプトは、配置プロセス中に自動的に実行ソース データベースと一致するように、コピー先のデータベースのスキーマを更新したときに生成されます。 前に実行するカスタム スクリプト、の後、または自動スクリプトの実行前後の両方を指定できます。 次の図は、カスタム スクリプトを追加する データベースの更新を構成します。 のダイアログ ボックスを示しています。

    Configure_Database_Updates_with_custom_script

  6. データベースを App_Data フォルダー内の SQL Server Express または SQL Server Compact データベース ファイル、そのファイルに配置先サーバーにコピーしない場合は プロジェクトのプロパティ のウィンドウの パッケージと Web の発行]タブ を開き、App_Data フォルダーからファイルを除外する のチェック ボックスをオンにします。 このオプションはであり、Web の発行 ウィザードの 設定 のタブに配置に指定するのと同じ 1 "を選択するときに Web のパッケージ化/発行 のタブで選択するビルド構成ことを確認します。

  7. データベースが SQL Server Compact データベースの場合は、データベース エンジンが展開されていることを確認する必要がある場合があります。 詳細については、ASP.NET Web サイト SQL Server Compact データベースの配置 の" "を参照してください。

変更をプレビューするとプロジェクト公開される

終了したら、すべてのデータベースを構成します プレビュー に進めるタブをクリック 次へ

Publish_Web_Preview_tab

変更をプレビューし、プロジェクトを発行するには

  1. コピーし、ホスティング プロバイダーから削除されたファイルの一覧を示すプレビューを表示する場合は、開始のプレビューをクリックします。

    待機時間が短いタブで、ファイルの一覧表示された後。

    Publish_Web_Preview_tab_with_all_files_listed

    発行するときに、アプリケーションの実行に必要なファイルはすべて、ホスティング プロバイダーにコピーします。 更新を発行すると、変更されたファイルだけがコピーされます。 (Web.config ファイルを除外: Visual Studio は、変更が変換、および Web 配置パラメーターに発生する場合があります。したがって、Web.config ファイルを常にコピーします。) を予測できませんコピー先の削除の追加ファイル オプションを選択した場合は、発行する前にプレビューの一覧をチェックすることが特に重要です。

  2. される場合にそのデータベースにデータベースの データベースの更新 を選択し、表示するには、データベースの右側に表示 プレビューのデータベース のリンクをクリックします。 (これは Entity Framework の Code First の移行を使用して配置する変更をプレビューすることはできません。データベースのプレビュー のダイアログ ボックスでは、対象データベースで実行するスクリプトを示します。 データベースが表示されるようにも大きい場合は、分またはこのプレビュー用の多くを取得できます。

    Publish_Web_Preview_tab_with_database_preview

  3. プロジェクトを配置する準備が整ったら、発行をクリックします。 (最初にする必要があるそのほかの配置タスクがあるかどうかを確認するに Visual Studio および ASP.NET の Web アプリケーション プロジェクトの配置の概要 情報を確認したことを確認します)。

  4. 接続 のタブを構成したときに既に接続を検証しない場合は、証明書エラー のダイアログ ボックスが表示される可能性があります。 詳細については、接続のタブの設定を検証するにはを参照してください。

配置プロセスが終了すると、出力 のウィンドウは、配置が成功したかどうかを示します。

Output_Window_after_successful_deployment

接続 のタブの 宛先 URL の値を入力した後、既定のブラウザーに正しく配置するとその URL に開きます。

配置が失敗した場合は、エラー メッセージについては エラー一覧 のペインを参照してください。 トラブルシューティングのリソースの場合は、Visual Studio および ASP.NET の Web 配置コンテンツ マップを参照してください。

参照

概念

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