redwarrior’s diary

C#, ASP.NET, WEB, G*などの雑多な情報

Web Deployの整理

ASP.NET MVC 5 の Web Deploy について自分用にまとめたメモ。

2018/12/11 追記

作業手順の順番を変更しました。

旧)Web Deploy 3.6のインストール→管理サービスのインストール

新)管理サービスのインストール→Web Deploy 3.6のインストール

対象環境

Windows Server 2008
IIS 7


Web Deployment Agent Service と Web Management Service どちらを使う?(サーバー側)

Web Deployment Agent Service=Remote Agent Service

  • 日本語では「Web 配置エージェントサービス」とか「リモート エージェント サービス」と呼ばれる。
  • Windows Server 2003/IIS 6 は、これ一択。
  • Web Deployのインストール時に、選択する必要あり。
  • 管理者のみ使用可能。

参照URL:Introduction to Web Deploy | Microsoft Docs

Web Management Service(WMSVC)=IISの管理サービス

  • 日本語では「Web 管理サービス」「IIS 管理サービス」と呼ばれる。
  • Windows Server 2008/IIS 7 から登場した。
  • サーバーOSに搭載されている。(参照URLより。最新OSは確認していない)
  • 設定を行うことで、管理者以外も使用可能。

参照URL:Visual Studio 2010 [発行]機能で配置可能とするためのサーバー設定 – monoe's blog


Visual StudioWebMatrix どちらを使う?(クライアント側)

Visual Studioで公開する場合

Visual Studioの公開(発行)は、Web Deployment Agent Service、Web Management Service の両方を使用可能。

WebMatrixで公開する場合

WebMatrixのWeb Deployは、Web Management Serviceを使用する。


Web Deployを行うユーザーは、Windowsユーザー(ドメインユーザー)とIISの内部ユーザー(IISマネージャー ユーザー)どちらを使う?

Windows ユーザーを使用する場合

特に追加の設定なし

IIS 内で完結するユーザー(IISマネージャー ユーザー)を使用する場合

IIS マネージャー ユーザー」を選択して、ユーザーを追加する。

参照URL:IIS 7の新しい運用形態 | Think IT(シンクイット)


実際に選択したのは?

サーバー側:Web Management Service

Web Management Serviceの方が新しく、機能も充実しているので、使わない手はない。

クライアント側:Visual Studio

Visual Studioを使用して開発しているため。

Web Deployを行うユーザー:Windowsユーザー(ドメインユーザー)

ドメインユーザー以外は、Web Deployを行わないため。


作業手順

上記条件でWeb Deployを行う場合のサーバー側の作業手順を以下にまとめる。

  1. .NET Framework 4.6のインストール

  2. サーバーマネージャーを起動し、[サーバーの役割] で [Web サーバー(IIS)] > [管理ツール] > [管理サービス] をインストール

  3. Web Deploy 3.6のインストール
    セットアップの種類で「完全」を選択する。
    もしくは、リモート エージェント サービスは不要なのでインストールしない。それ以外はインストールする。

  4. IIS マネージャーを起動し、[管理サービス] で [リモート接続を有効にする] をチェックする。
    Web Deployに必要。有効にしないとローカルコンピューターからしか管理サービスに接続できない。

  5. Web Deploy対象のサイトを右クリックし、[展開] > [Web 配置による発行の有効化] を行う。

    • ユーザーを入力する。プルダウンに無い場合は右側のボタンを押下して選択する。
    • 保存先を指定する。
  6. 保存された設定ファイルは、開発環境でインポート出来る。
    「管理サービスの委任」の設定が行われる。(一部の設定は、「接続の検証」時に行われているかもしれない)

ユーザーのアクセス許可を設定する必要はあるか?

[Web 配置による発行の有効化] で選択したユーザーは設定されているので、新たに設定する必要はない。

管理サービスの委任を設定する必要はあるか?

[Web 配置による発行の有効化] で選択したユーザーは設定されているので、新たに設定する必要はない。

フォルダのアクセス権限を編集する必要はあるか?

[Web 配置による発行の有効化] を行ったサイトのフォルダ(Default Web Siteならば、wwwrootフォルダ)に対して、選択したユーザーにはフルコントロールが与えられるので、新たに設定する必要はない。

参照URL:
Visual StudioのWeb発行がどうしても上手くいきません

https://officeyuai.net/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E9%96%8B%E7%99%BA/net-mvc/mvc_trable1/


その他・関連用語

Windows Process Activation Service(Windows プロセス アクティブ化サービス:WAS)

WCFでHTTPだけでなく、他プロトコルの通信もサポートするためのもの。Web Deployment Agent Serviceと勘違いしやすい。ポート80をリッスンしている。

World Wide Web Publishing Service(World Wide Web 発行サービス:W3SVC)

IISを起動・停止するためのサービス。Web Management Serviceと勘違いしやすい。