方法: Visual Studio で作成された deploy.cmd ファイルを使用して配置パッケージをインストールする

Web 配置パッケージを Visual Studio に作成すると、Visual Studio ではパッケージをインストールするときに使用できる .cmd ファイルが作成されます。 この .cmd ファイルには、パッケージをインストールする実際の Web 配置 コマンドが格納されています。 .cmd ファイルは、Web 配置 コマンドが長く複雑なため、コマンド ライン インストール構文を簡単にするために用意されています。

.cmd ファイルを起動する前に、配置先サーバーが正しくセットアップされていることを確認します。 配置先がリモート サーバーの場合、リモート サーバーに対する適切な接続とアクセス許可が設定されていることを確認します。 .cmd ファイルを起動するときにオプションを渡すと、.cmd ファイルは Web 配置 に渡されます。

このトピックでは、.cmd ファイルを起動するために使用する構文について説明します。 また、.cmd ファイルを起動するための前提条件の概要について説明し、詳細なセットアップ情報に関する他のリソースへのリンクも示します。

インストール方法の選択

このセクションでは、パッケージをローカルまたはリモートでインストールするオプションについての概要と、各オプションのサーバー構成手順を説明します。 リモート配置用のサーバーの構成手順は、シナリオに最適な方法を決定する際に役立つ概要を示すことを目的にしています。 これらの各手順は、Microsoft IIS TechNet Web サイトのトピックにリンクしており、ここで詳細な説明を検索できます。

開発用コンピューターに配置する場合 (テスト用)、インプロセス ローカル配置用のコンピューターの構成方法を説明する手順に従います。

サードパーティのホスティング プロバイダーまたは他のユーザーが管理する配置先サーバーに配置する場合、使用方法はホスティング プロバイダーまたはサーバー管理者が指定します。 その場合は、オプションの概要をスキップできます。 その代わり、読むことができるのは使用方法に対する開発用コンピューターの要件を示す手順のみです。

次のインストール方法を使用できます。

  • インプロセス パッケージをローカル サーバー (.cmd ファイルを実行するサーバー) にインストールします。

    ローカル サーバーの管理者権限が必要です。 これは、開発者が IIS を使用してローカル テストを行うために開発用コンピューターに配置するときに通常使用する方法です。

  • Web 管理サービス (WMSvc) と Web 配置ハンドラーを使用してリモート サーバーにインストールします。

    サードパーティのホスティング プロバイダーは通常、クライアントが自分でアプリケーションを配置できるようにこの配置方法に合わせてサーバーを設定します。 ただし、ホスティング プロバイダーは、サーバーの管理者権限をクライアントに与える必要はありません。 IT 部門がテスト サーバーまたは運用サーバーの管理者権限を開発者に与えることを望まない場合、この方法はエンタープライズ環境でよく使用されます。

    この方法には IIS 7 が必要です。 配置先サーバーの管理者権限を持つユーザーは、IIS マネージャーを使用して、配置に使用できるアカウントを設定します。 配置する場合は、このアカウントの資格情報を使用します。 この方法の利点は、配置するときに配置先サーバーの管理者権限が不要なことです。 欠点は、IIS 設定の構成など、管理者権限を必要とする配置タスクを通常は実行できないことです。

  • Web 配置エージェント サービス (MsDepSvc) を使用してリモート サーバーにインストールします。 これは、Web 配置リモート サービス、または単にリモート エージェントとも呼ばれます。

    リモート サーバーの管理者権限が必要です。 この方法の利点は、配置先サーバーの管理者であるため、配置時に実行できるタスクに制限がないことです。 配置を実行するユーザーが配置先サーバーの管理者でない場合、この方法を使用できません。

  • Web 配置 tempAgent プロバイダー設定を使用して、リモート サーバーにインストールします。

    リモート エージェントの場合と同様に、配置先サーバーの管理者権限が必要です。 リモート エージェントに優るこの方法の利点は、コマンド ファイルを実行するコンピューターまたは送信先コンピューターに Web 配置 をインストールする必要がないことです。 Web 配置 をインストールしたサーバーの共有フォルダーから Web 配置 を実行できます。 このため、最初にサーバーごとに Web 配置 をインストールしなくても複数のサーバーに配置できます。 また、Web 配置 の新しいバージョンがリリースされたときに各サーバーを更新したり、Web 配置 のバージョンが送信元コンピューターと送信先コンピューターで同じであることを確認したりする必要がありません。 tempAgent プロバイダー設定では、リモート エージェントと比べた場合、配置先サーバーで追加の設定が必要になります。 ただし、保守対象のサーバーが複数存在する場合、保守作業は通常徐々に減少します。

シナリオに適したオプションを選択する方法の詳細については、Microsoft TechNet Web サイトの「リモートでの Web 配置の使用」を参照してください。

このセクションの後半では、パッケージのインストール方法別にサーバーを構成する方法の概要を説明します。

ローカル配置用のサーバーの構成

次の手順では、インプロセス ローカル パッケージをインストールできるようにサーバーを設定する方法について説明します。

ローカル インプロセス配置用にサーバーを設定するには

  • サーバーに次のソフトウェアがインストールされていることを確認します。

    • IIS 5.1、IIS 6、または IIS 7。

    • インストールする Web アプリケーションの要件に応じて、.NET Framework 2.0 SP1、またはそれ以降のバージョン。

    • Web 配置 (パッケージを作成するときに使用したものと同じバージョン)。

    Web Platform Installer を使用して IIS、.NET Framework、および Web 配置 をインストールする方法については、Microsoft Web サイトの「Microsoft Web Platform Installer 2.0」を参照してください。

Web 管理サービス用のサーバーの構成

次の手順では、Web 管理サービス (WMSvc) と Web 配置ハンドラーを使用して配置パッケージをインストールできるように、送信元コンピューターと送信先コンピューターを設定する方法の概要について説明します。 詳細情報および詳細な手順については、「Web 配置ハンドラーの構成」(Microsoft TechNet Web サイト) または「Web 配置ハンドラーの構成」(IIS. net Web サイト) を参照してください。

Web 管理サービスを使用して配置するようにサーバーを設定するには

  1. deploy.cmd ファイルを実行するコンピューターに、次のソフトウェアがインストールされていることを確認します。

    • Web 配置 (パッケージを作成するときに使用したものと同じバージョン)。
  2. 配置先サーバーに次のソフトウェアがインストールされていることを確認します。

    • IIS 7。

    • インストールする Web アプリケーションの要件に応じて、.NET Framework 2.0 SP1、またはそれ以降のバージョン。

    • Web 配置 (パッケージを作成するときに使用したものと同じバージョン)。

    Web Platform Installer を使用して IIS、.NET Framework、および Web 配置 をインストールする方法については、Microsoft Web サイトの「Microsoft Web Platform Installer 2.0」を参照してください。

  3. 配置先サーバーで、次の手順で Web 管理サービス (WMSvc) を構成します。

    1. 管理サービスの役割サービスを追加します。

    2. リモート接続を有効にします。

    3. パッケージのインストールに使用するユーザー アカウントを作成します。

    4. ユーザー アカウントの委任規則を追加します。

  4. 送信先コンピューターで、パッケージをインストールする IIS Web サイトのアプリケーション プールが、パッケージで要求された .NET Framework バージョンに設定されていることを確認します (パッケージで Web サイト名を指定せずに Web アプリケーション名を指定した場合、パッケージは [既定の Web サイト] の場所にインストールされます)。

Web 配置リモート サービス用のサーバーの構成

次の手順では、Web Deployment Agent Service (MSDepSvc) を使用して、パッケージをリモートでインストールできるように送信元コンピューターと送信先コンピューターを設定する方法の概要について説明します。 詳細については、Microsoft TechNet Web サイトの「Web 配置リモート サービス」を参照してください。

Web 配置エージェント サービスを使用して配置するようにサーバーを設定するには

  1. deploy.cmd ファイルを実行するサーバーに、次のソフトウェアがインストールされていることを確認します。

    • Web 配置 (パッケージを作成するときに使用したものと同じバージョン)。
  2. 配置先サーバーに次のソフトウェアがインストールされていることを確認します。

    • IIS 5.1、IIS 6、または IIS 7。

    • インストールする Web アプリケーションの要件に応じて、.NET Framework 2.0 SP1、またはそれ以降のバージョン。

    • Web 配置 (パッケージを作成するときに使用したものと同じバージョン)。

    Web Platform Installer を使用して IIS、.NET Framework、および Web 配置 をインストールする方法については、Microsoft Web サイトの「Microsoft Web Platform Installer 2.0」を参照してください。

  3. 配置先サーバーで MSDepSvc サービスが構成され開始されていることを確認します。

  4. 配置先サーバーで、ポート 80 を使用して HTTP トラフィックを許可するようにファイアウォールを構成します。

  5. 送信先コンピューターで、パッケージをインストールする IIS Web サイトのアプリケーション プールが、パッケージで要求された .NET Framework バージョンに設定されていることを確認します (パッケージで Web サイト名を指定せずに Web アプリケーション名を指定した場合、パッケージは [既定の Web サイト] の場所にインストールされます)。

tempAgent プロバイダー設定用のサーバーの構成

次の手順では、Web 配置 tempAgent プロバイダー設定を使用して、リモートでインストールできるように送信元コンピューターと送信先コンピューターを設定する方法の概要について説明します。 詳細については、Microsoft TechNet Web サイトの「Web 配置オン デマンド」を参照してください。

Web 配置 tempAgent プロバイダー設定を使用して配置するようにサーバーを設定するには

  1. 送信元コンピューターに次のソフトウェアがインストールされていることを確認します。

    • Web 配置エージェント サービス (MSDepSvc)

      注意

      既定では、Web 配置エージェント サービスは Visual Studio の一部としてインストールされていません。インストールするには、Web 配置ツール セットアップを実行し、リモート エージェント サービスを選択します。

  2. 配置先サーバーに次のソフトウェアがインストールされていることを確認します。

    • IIS 5.1、IIS 6、または IIS 7。

    • インストールする Web アプリケーションの要件に応じて、.NET Framework 2.0 SP1、またはそれ以降のバージョン。

    Web Platform Installer を使用して IIS および .NET Framework をインストールする方法については、Microsoft Web サイトの「Microsoft Web Platform Installer 2.0」を参照してください。

  3. 配置先サーバーで、次のトラフィックを許可するようにファイアウォールを構成します。

    • ポート 80 を使用した HTTP トラフィック

    • WMI トラフィック

  4. 配置先サーバーで、Windows Management Instrumentation (WMI) サービスが実行されていることを確認します。

  5. 配置先サーバーで、一時的な Web 配置 プログラム ファイルをコピーできる共有フォルダーが存在することを確認します。

  6. 配置先サーバーで、Web 配置エージェント サービス (MSDepSvc) がインストールされていないことを確認します。 サービスがインストールされていると、配置プロセスに影響を与えます。

  7. 配置コマンド ファイルを実行するときに使用する資格情報は、リモート サーバーのローカル管理者であるユーザー アカウントから取得したことを確認します。

  8. 送信先コンピューターで、パッケージをインストールする IIS Web サイトのアプリケーション プールが、パッケージで要求された .NET Framework バージョンに設定されていることを確認します (パッケージで Web サイト名を指定せずに Web アプリケーション名を指定した場合、パッケージは [既定の Web サイト] の場所にインストールされます)。

コマンド ファイルの実行

最初にトライアル モードで Web 配置 を実行し、予想どおりに配置が機能することを検証することをお勧めします。 こうすることで、不測の事態が発生した場合、配置を実行する前に変更できます。 次の手順では、通常のシナリオでコマンド ファイルを実行する方法について説明します。

コマンド ファイルを使用して配置するには

  1. パッケージ (ProjectName.zip)、ProjectName.SetParameters.xml ファイル、および ProjectName.deploy.cmd ファイルがすべて同じフォルダー内にあることを確認してください。

    tempAgent プロバイダー設定を使用する場合、このフォルダーをリモート コンピューターに保存できます。 それ以外の場合は、コマンド ファイルを実行するコンピューターに保存する必要があります。

  2. SetParameters.xml ファイルに含まれているすべてのパラメーターの値をカスタマイズする場合は、ファイルを編集して値を変更します。

    たとえば、同じパッケージを使用して最初にステージング サーバーにインストールし、後で運用サーバーにインストールすることもできます。 その場合、これらのインストールごとに異なるデータベースの接続文字列値を使用する必要があります。

  3. コマンド ファイルを実行し、t フラグ (トライアル モード) と、シナリオに適したオプションのフラグを指定します。

    一般的なシナリオとそれに適したオプションのフラグは次のとおりです。

    注意

    サポートされているオプションのフラグの一覧を表示するには、コマンド プロンプトで .cmd ファイル名を入力します。ファイル名の後ろにフラグは付けません。.cmd ファイルを開くと、追加のフラグが表示されます。ヘルプ テキストに表示されないフラグおよびこのトピックで取り上げられていないフラグはサポートされていないので、使用しないでください。

    注意

    アクティブ コード ページに記載されていない文字を配置先サーバー名、ユーザー名、またはパスワードに使用すると、.cmd ファイルは実行されません。

    • Web 管理サービス (WMSvc) の場合、次の構文を使用して、m フラグを含めて、サービス URL として MSDeploy.axd を指定します。

      ProjectName.deploy.cmd /t /m:https://DestinationServerName:8172/MSDeploy.axd

      ユーザー名とパスワードを指定するには、u フラグと p フラグを含めます。 a フラグを追加して基本認証を指定します。 これらのフラグを使用する方法を次の例に示します。

      ProjectName.deploy.cmd /t /m:DestinationServerName /u:User /p:Password /a:basic

      信頼されていない証明書を許可するには、次の例に示すように、-AllowUntrusted=True を追加します。

      ProjectName.deploy.cmd /t /m:DestinationServerName /u:User /p:Password /a:basic -AllowUntrusted=True

    • Web 配置エージェント サービス (MSDepSvc) の場合、次の構文を使用して、m フラグを含めて、配置先サーバー名またはサービス URL として MSDeployAgentService を指定します。

      ProjectName.deploy.cmd /t /m:DestinationServerName

      ProjectName.deploy.cmd /t /m:http://DestinationServerName/MSDeployAgentService

      ユーザー名とパスワードを指定するには、u フラグと p フラグを含めます。 (WMSvc の場合と同様に a フラグを含めないでください)。

    • tempAgent プロバイダー設定の場合、次の構文を使用して、g フラグと m フラグを含めてコンピューター名を指定します。

      ProjectName.deploy.cmd /t /m:DestinationServerName /g:true

      ユーザー名とパスワードを指定するには、u フラグと p フラグを含めます。 (WMSvc の場合と同様に a フラグを含めないでください)。

    • データベース プロバイダーをスキップするには、次の構文を使用して、SQL Server プロバイダーの Web 配置 skip コマンドを含めます。

      ProjectName.deploy.cmd /t "-skip:objectName=dbFullSql"

      これは、Web ファームに配置する際に、データベースを一度だけ配置する場合に実行します。

    • Web.config の更新をスキップするには、ファイルの Web 配置 skip コマンドを含めます。 こうすると、配置先サーバーで手動で構成した Web.config ファイルの設定が上書きされません。

      アプリケーションのすべての Web.config ファイルをスキップする方法を次の例に示します。

      ProjectName.deploy.cmd /t "-skip:objectName= filePath,absolutePath=\\ApplicationFolder\\[\w\s]+web\.config$"

      アプリケーションの Web.config ファイルのみをスキップする方法を次の例に示します。

      ProjectName.deploy.cmd /t "-skip:objectName= filePath,absolutePath=\\ApplicationFolder\\web\.config$"

  4. トライアル モードの配置で生成されたログを確認し、必要な変更を加え、t フラグを使用してコマンド ファイルを再実行します。

  5. 配置の変更がログに正確に反映されるまで、前の手順を繰り返します。

  6. t フラグではなく y フラグ ("yes"、つまり更新モード) を使用し、選択したオプションのフラグを使用して、コマンド ファイルを実行します。

    Web 配置 が配置を実行し、実行内容のログが表示されます。

前の手順では、一般的なシナリオの構文の例を示し、.cmd ファイルに定義されているフラグの使用方法を説明しています。 その他のシナリオでは、任意の Web 配置 コマンドを Web 配置 に渡すことができます。 .cmd ファイルで定義されたフラグに限定されません。 前の例に示すように、等号 (=) が含まれているコマンドを指定する場合は、フラグを引用符で囲む必要があります。

また、Web 配置 コマンドを、__MsDeployAdditionalFlags 環境変数を設定して指定することもできます。

使用できる他の Web 配置 コマンドの詳細については、「Web 配置コマンド ライン リファレンス」を参照してください。

参照

概念

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