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

このトピックでは、についてよく寄せられる質問の次の製品を使用して Web アプリケーション プロジェクトを配置する応答:

答えの多くは、発行プロファイル (.pubxml) ファイルまたは wpp.targets ファイルを編集して配置設定を変更します。 この方法については、「方法: Visual Studio Web プロジェクトで、発行プロファイル (.pubxml) ファイルおよび .wpp.targets ファイルの配置設定を編集する」を参照してください。

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

  • 配置から特定のファイルまたはフォルダーを除外できますか

  • 理由マイ プロジェクトのフォルダーのすべてのファイルが配置されているしません。

  • 私は、マイ プロジェクトのフォルダー外の特定のファイルまたはフォルダーを格納できますか。

  • 操作方法の Web.config の変換や。

  • My は、Web.config の変換の代わりに Web 配置パラメーターを使用する必要があるか。

  • 操作方法は、移行を使用しないで Code First データベースを展開しますか。

  • 私は、の配置のパッケージ化または発行のプロセスをデバッグできますか。

  • ワンクリック発行で HTTPS 経由でリモート エージェント サービスを使用できますか

  • ワンクリック発行で Web 配置 tempAgent プロバイダー設定を使用できますか

  • ワンクリック発行でアーカイブ用のパッケージを作成できますか

  • ソリューションをビルドするたびにパッケージが作成されるように指定できますか

  • 操作方法では、配置プロセス中に複数回の再起動の[アプリケーション ドメインを保持しますか。

  • ASP.NET 4 が既にインストールされているのに、ASP.NET 4 が必要であることを示すエラーが発生するのはなぜですか

  • CREATE USER または CREATE ROLE データベース コマンドを実行しようとすると配置が失敗するのはなぜですか

  • 単一のパッケージを作成し、そのパッケージを使用して IIS 6 と IIS 7 の両方を配置できますか

  • リモート配置のはなぜ大きなファイルのローカル配置に成功しましたが、失敗しますか。

配置から特定のファイルまたはフォルダーを除外できますか

[Web のパッケージ化/発行] タブで [このアプリケーションの実行に必要なファイルのみ] オプションまたは [このプロジェクトに含まれるすべてのファイル] オプションを選択して、配置されるファイルを制限できます。 [このプロジェクトに含まれるすべてのファイル] オプションを選択した場合、ソリューション エクスプローラーでファイルを右クリックし、[プロジェクトから除外] をクリックして、そのファイルが配置されないようにできます。 詳細については、このアプリケーションの実行に必要なファイルのみ または このプロジェクトに含まれるすべてのファイル のオプションを使用すると、に関するファイルを除外するか、理由マイ プロジェクトのフォルダーのすべてのファイルが配置されているしません。を参照してください。

これらのオプションは、あまり柔軟で広くなかったら、.pubxml か .wpp.targets ファイルの編集、ExcludeFilesFromDeployment の要素または ExcludeFoldersFromDeployment の要素 (または PropertyGroup の要素の両方) を追加します。 各要素には、単一の名前を指定したり、次の例に示すように、セミコロン (;) で区切られた複数の名前を指定できます:

<PropertyGroup">
  <ExcludeFilesFromDeployment>
    File1.aspx;File2.aspx
  </ExcludeFilesFromDeployment>
  <ExcludeFoldersFromDeployment>
    Folder1;Folder2
  </ExcludeFoldersFromDeployment>
</PropertyGroup> 

詳細については、Sayed Hashimi のブログの投稿"を参照してください:

  1. Web 配置ツール (MSDeploy) : 余分なファイルまたは特定のファイルを除外するなど、ビルドのパッケージ

  2. Web 配置ツール (MSDeploy) : 構成に基づいてパッケージからファイルを除外する

ページのトップへ

理由マイ プロジェクトのフォルダーのすべてのファイルが配置されているしません。

プロジェクトのプロパティ のウィンドウの Web のパッケージ化/発行 のタブを開く プロジェクト のメニューから選択 パッケージ化/発行の設定配置する項目 (すべての配置方法に適用) というセクションのドロップダウン リストには、3 とおりの方法が用意されています:

  • [このアプリケーションの実行に必要なファイルのみ]。 これが既定値です。 Visual Studio は、ファイルが正常に実行するアプリケーションに必要か判断されます。 たとえば、ビルド中に生成される コンテンツとしてマークされた Bin フォルダー、ファイル、およびファイルにアセンブリが含まれます。 ファイルが コンテンツとしてマークされているかどうかを確認するには、ソリューション エクスプローラーファイルを選択し、ウィンドウの プロパティ ファイルの ビルド アクション のプロパティをチェックします。 ファイルを配置します コンテンツ への ビルド アクション の値を変更したり、ファイルを配置しないようにで他の操作に、を Noneなど変更します。 コンテンツ に自動的に設定されるファイルの種類は .master、.ashx の .svc、.asax、.skin、.browser、.config 派生され、のサイトマップが含まれます。 ファイルがプロジェクトに ビルド アクション のプロパティを持つように含まれている必要があります。

  • [このプロジェクトに含まれるすべてのファイル]。 Visual Studio は、ビルド アクション のプロパティ値に関係なくプロジェクトに含まれるすべてのファイルを配置します。

  • プロジェクト フォルダーのすべてのファイル。 Visual Studio は、プロジェクトまたは ビルド アクション のプロパティ値に含まれるかどうかはプロジェクトのフォルダーとサブフォルダーにあるすべてのファイルを配置します。

MSBuild の構文を検索した場合、この 3 個のオプションが次のファイルにおけるの動作の詳細があります:

  • Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets

  • Microsoft.Web.Publishing.AllFilesInTheProject.targets

  • Microsoft.Web.Publishing.AllFilesInProjectFolder.targets

これらのファイルは Visual Studio がインストールされているコンピューターに次の場所にあります:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\

ページのトップへ

私は、マイ プロジェクトのフォルダー外の特定のファイルまたはフォルダーを格納できますか。

はい。 この方法については、Sayed Hashimi のブログ 余分なファイルまたは特定のファイルを除外して、を含むパッケージの作成 の" "を参照してください。

ページのトップへ

操作方法の Web.config の変換や。

いくつかのオプションがあります:

  • Web.config の変換ファイルで特定の変換をコメント アウトします。

  • 定義されたビルド構成または発行プロファイルに対応しない名前に変換ファイルの名前を変更します。 たとえば、Web.Debug.config を Web.Debugx.config に変更します (Visual Studio の外部のファイルの名前を変更する必要があります)。

  • 変換ファイルを削除します。 ファイルをカスタマイズしていた場合は、カスタマイズが失われます。

  • TransformWebConfigEnabled の要素を PropertyGroup の要素に追加し、Falseに値を設定することによって .pubxml ファイルまたは .wpp.targets ファイルを編集します。

ページのトップへ

My は、Web.config の変換の代わりに Web 配置パラメーターを使用する必要があるか。

Web 配置パラメーターのセットアップ、Visual Studio の Web.config の変換より複雑ですが、非常に柔軟です。 Web 配置パラメーターの他の多くの配置タスクを自動化したりできるデータベース スクリプトと IIS 設定の更新などのため設定するために、複雑です。 Web 配置パラメーターのパッケージを作成するときに、配置パッケージを作成する配置された Web.config ファイルに入力する必要がある値がわからない場合、Web.config の変換に役立ちます。 Web 配置パラメーターは、作成した場合、そのパッケージのインストール時にパラメーターの値を指定できるようにします。 これは、配置パッケージを作成およびインストールする必要がある各種のユーザーが共通のエンタープライズ環境に特に便利です。 たとえば、パッケージを作成する開発者は、Web.config ファイルにある必要がある特定のパスワードがわからない場合があります。 パッケージをインストールする IT 管理者は、パッケージのインストール時にこれらの値を入力できます。 詳細については、Vishal Joshi ブログと 方法: Web 配置パッケージで Web 配置パラメーターを使用する参照 パラメーターと. Web.config の変換 してください。

ページのトップへ

操作方法は、移行せずに Code First データベースを展開しますか。

データベースにアクセスする Entity Framework の Code First コンテキスト クラスを実装する場合 Web の発行 ウィザードの 設定 のタブには、データベースの配置を自動化するために Code First の移行を使用できるチェック ボックスが表示されます。 アクセス、および Code First 移行を配置するために使用できません。ただし、Code First API を使用してデータベースをデータベース、作成されることはありません。 このシナリオでは、目的は、Code First コンテキストを使用しないよう SQL Server データベースを配置する データベースの更新 のチェック ボックスです。

Code First のデータベースを移行を使用せずに配置するには

  1. Visual Studio では Web の発行 ウィザードを開いている場合は、それを閉じます。

  2. アプリケーションの Web.config ファイルで、データベースの追加の接続文字列に要素を作成します。 この新しい接続文字列の要素にコンテキスト クラスの名前または完全修飾クラス名と一致しない名前を指定します。

  3. 次に、プロジェクトをビルドして、Web の発行 ウィザードを開き、使用するプロファイルを選択します。

  4. [設定] タブをクリックします。

    タブの データベース のセクションのデータベースについては、2 エントリ、Code First コンテキスト クラスの 1 と Web.config ファイルに新しい接続文字列の 1 が表示されます。

  5. Code First コンテキスト クラスのエントリで、実行時に使用するアプリケーションで実行し アプリケーション管理 のチェック ボックスをオフにすると接続文字列を入力します。

  6. 新しい Web.config ファイルの接続文字列のエントリに、配置時にスキーマを変更するために使用される **データベースを更新します。**を選択するに接続文字列を入力する場合。

    データベースの配置設定を入力する方法の詳細に 方法: Visual Studio でワンクリック発行を使用して Web アプリケーション プロジェクトを配置するを参照してください。

ページのトップへ

私は、の配置のパッケージ化または発行のプロセスをデバッグできますか。

パッケージ化または発行の詳細出力レベルは、MSBuild の詳細度を決定するのと同じ Visual Studio 設定で制御されます。 メイン メニューの [ツール] をクリックし、[オプション] をクリックします。 [オプション] ダイアログ ボックスで、[プロジェクトおよびソリューション] を展開し、[ビルド/実行] をクリックします。 [MSBuild プロジェクト ビルドの出力の詳細] ボックスの一覧が表示されます。この一覧から、次のいずれかのオプションを選択できます。

  • 簡易

  • Minimal

  • 標準

  • Detailed

  • 診断

これらのオプションは、コマンド ラインから MSBuild を実行するときに /verbosity フラグまたは /v フラグを使用して設定できる内容に対応します。 MSBuild コマンド ラインのフラグに関する詳細については、MSBuild コマンド ライン リファレンスを参照してください。

ページのトップへ

ワンクリック発行で HTTPS 経由でリモート エージェント サービスを使用できますか

1 ページ [Web の発行] ダイアログ ボックスの [サービス URL] ボックスに HTTPS URL を入力すると、Visual Studio によって Windows 管理サービスが自動的に使用されます。 HTTPS を使用する場合は、Windows 管理サービスを使用することをお勧めします。

ページのトップへ

ワンクリック発行で Web 配置 tempAgent プロバイダー設定を使用できますか

1 ページ tempAgent プロバイダー設定を使用する場合は、Web 配置コマンド ライン、または配置パッケージが作成されるときに Visual Studio によって生成される deploy.cmd ファイルを使用する必要があります。

ページのトップへ

ワンクリック発行でアーカイブ用のパッケージを作成できますか

バックアップ パッケージを作成するプロジェクトを発行するには、2 とおりの発行プロファイル、1、および 1 を作成できます。 公開、パッケージをクリック 発行 を再作成する発行プロファイルに、切り替える必要がある後で、プロジェクト。 パッケージを作成する発行は、" "を 方法: Visual Studio で Web 配置パッケージを作成するプロファイリングを実行して作成する方法の詳細については。

ページのトップへ

ソリューションをビルドするたびにパッケージが作成されるように指定できますか

はい。 プロジェクト ファイルを編集し、適切な PropertyGroup 要素に DeployOnBuild 要素を追加します。 (プロジェクト ファイルの編集方法については 方法: プロジェクト ファイルの配置設定を編集します。、" "を参照してください。次の例は、リリース ビルド構成の PropertyGroup 要素を示しています。

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  <DeployOnBuild>True</DeployOnBuild>
  <!-- Additional settings -->
</PropertyGroup>

プロジェクト ファイルでこの変更を加えた場合、更新する PropertyGroup の要素はプロジェクト ファイルの Import のステートメントの前に配置されていることを確認します。 ( DeployOnBuild のプロパティは Microsoft.Web.Publishing.targetsの Import の前に設定する必要があります。

DeployDefaultTarget 要素も Package に設定する必要があります。 ただし、これは既定値であるため省略可能です。

これは、コマンド ラインからソリューションをビルドするとパッケージの作成を自動的に行うために使用するすべてです。 Visual Studio でソリューションをビルドすると、自動パッケージの作成も機能します Microsoft.CSharp.targets または Microsoft.VisualBasic.targetsの Import の後にプロジェクト ファイルに次のコードを追加します:

<PropertyGroup> 
  <BuildDependsOn> 
    $(BuildDependsOn); 
    Package 
  </BuildDependsOn> 
</PropertyGroup>

ページのトップへ

IIS 設定を変更せずに、開発者がステージング サーバーに配置できるように委任規則を構成できますか

これは、IIS 7 以降のバージョンで可能です。 配置のアクセス許可の委任については、次のトピックを参照してください。

ページのトップへ

操作方法では、配置プロセス中に複数回の再起動の[アプリケーション ドメインを保持しますか。

アプリケーションを配置する前に実行する必要がある場合は、複数のコピー コマンド間でその間には重要な期間は、アプリケーション ドメインを再起動する可能性があります。 再起動を回避するには、httpRuntime 要素 (ASP.NET 設定スキーマ) の Web.config ファイルに要素を追加し、秒数にアプリケーション ドメインがコピー コマンド間で再起動しないことを確認するために待機するように waitChangeNotification の属性を設定します。 たとえば、待機時間を 5 秒に指定する場合、httpRuntime 要素は以下の例のようになります。

<configuration>
  <system.web>
        <compilation debug="false" targetFramework="4.0" />
    <httpRuntime 
      waitChangeNotification="5" />
  </system.web>
</configuration>

最初のコピー コマンドを実行した後、アプリケーション ドメインが一定の間隔以内に再起動するように設定するには、maxWaitChangeNotification 属性を httpRuntime 要素に追加し、待機する最大秒数に設定します。 たとえば、両方の属性を設定した httpRuntime 要素を持つ Web.config ファイルは以下の例のようになります。

<configuration>
  <system.web>
    <httpRuntime 
      waitChangeNotification="5"
      maxWaitChangeNotification="10" />
  </system.web>
</configuration>

ページのトップへ

ASP.NET 4 が既にインストールされているのに、ASP.NET 4 が必要であることを示すエラーが発生するのはなぜですか

ASP.NET 4 Web アプリケーションを配置するためには、ASP.NET 4 を配置先サーバー上の IIS に登録する必要があります。 また、配置先の IIS Web サイトのアプリケーション プールが、.NET Framework 4 に割り当てられている必要があります。 これらのいずれかの条件に該当しない場合、配置しようとしたときに、次のエラーのいずれかが表示される可能性があります。

  • 既定の .NET 4.0 アプリケーション プールが存在しないか、アプリケーションを追加できませんでした。 このコンピューターに ASP.NET 4.0 がインストールされていることを確認してください。

  • 使用しようとしているアプリケーション プールでは、'managedRuntimeVersion' プロパティが 'v2.0' に設定されています。 このアプリケーションには 'v4.0' が必要です。

Visual Studio をインストールすると ASP.NET 4 がインストールされます。 ただし、インストール プロセスでは、ASP.NET 4 が IIS に自動的に登録されず、既存の IIS Web サイトは .NET 4 アプリケーション プールに自動的に割り当てられません。 これを修正するには、ASP.NET を IIS に登録し、配置先の IIS Web サイトのアプリケーション プールを、パッケージで必要な .NET Framework のバージョンに設定します。 IIS の登録方法については、「ASP.NET IIS Registration Tool (Aspnet_regiis.exe)」を参照してください。

ページのトップへ

単一のパッケージを作成し、そのパッケージを使用して IIS 6 と IIS 7 の両方を配置できますか

次のいずれかの条件が true の場合、IIS 6 および IIS 7 に配置する際に同じパッケージを使用できます:

  • [Web のパッケージ化/発行] タブで [IIS マネージャーで構成されたすべての IIS 設定を含める] オプションをオンにしない。

  • [IIS マネージャーで構成されたすべての IIS 設定を含める] オプションをオンにし、IIS 6 でパッケージを作成する。

[IIS マネージャーで構成されたすべての IIS 設定を含める] オプションをオンにした場合、IIS 7 で作成されたパッケージを IIS 6 に配置することはできません。

ページのトップへ

リモート配置のはなぜ大きなファイルのローカル配置に成功しましたが、失敗しますか。

通常は、運用サーバーに配置するときはファイアウォール全体に配置します。 大きなファイルの終わりのストリームのエラーが発生した場合は、ファイアウォール設定を確認します。 これが配置に失敗の原因である場合、配置元コンピューターで次の例のようなエラー メッセージが表示されることがあります:

Warning: Retrying the sync because a socket error (10054) occurred.

Retrying operation 'Serialization' on object MSDeploy.contentPath (sourcePath).

配置先サーバーで、次の例のようなエラー メッセージが表示されることがあります:

System.Net.HttpListenerException: An operation was attempted on a nonexistent network connection

ページのトップへ

参照

概念

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