IISへのデプロイで「展開」が選べない&VisualStudioから接続できない


概要

Visual StudioからWindows ServerへWebアプリをデプロイするとき、うまくいかずに原因の特定に時間がかかった。結果、以下の対応で無事にデプロイができた。

  • WebDeploy3.6はダメだが、3.5だとOKだった
  • WebDeployはフルインストールすること

開発環境

サーバ:Windows Server 2016 Standard Ver.1607
IIS Ver.10.0.14393.0
開発機:Windows 10 Home
Visual Studio Community 2019 Ver.16.4.2

参考サイト

デプロイの手順は以下のサイトが分かりやすい。
ASP.NET > WindowsServer > Web Deployの設定
リモートのIISへVisual StudioからWebアプリをWeb Deployする

問題解決にあたって以下のサイトを参考にした。
IIS 「管理サービスの委任」が開けない
MSDeploy - Destination Not Reachable

事象と解決方法

IISで『展開』が選べない

最初にサーバへWebDeployTool3.6をインストールした。が、IISでサイト名を右クリックしても「展開」が表示されず、Web配置による発行の有効化ができない。
対策として、WebDeployTool3.6をアンインストールし、3.5をインストールしたら、以下のように表示されるようになった。

Visual Studioからサーバーに接続できない

Visual Studioのアプリの発行で接続の検証を行うと、以下のエラーが出る。

リモート コンピューター("xxxxxx")に接続できませんでした。
リモート コンピューターで、Web配置がインストールされていること、
および必要なプロセス("Web Management Service")が開始されていることを確認してください。
ERROR_DESTINATION_NOT_REACHABLE リモート サーバーに接続できません。

対策として、WebDeployToolのインストーラーを起動し、フルインストールをやり直した。

上記インストーラーの画面で「変更」を選択した。

上記画面で各機能ごとのアイコンをクリックして、すべての機能をインストールするよう選択した。
この状態でインストールを行うと、エラーが出ずに接続できるようになった。
なお、いったん削除(アンインストール)して再インストールしても効果は同じ。

IISとVisual Studioの設定方法

最後に、接続成功した設定方法をまとめておく。
まずは以下のように、サーバー側のIISにtest_siteという新規サイトを追加する。

作成するサイトを複数のアプリケーションに分割したいため、adminというアプリケーションを追加する。

サイトの右クリックから「展開」→「Web配置による発行の有効化」を開くと、以下のように発行サーバー接続情報が「SERVER:8172/msdeploy.axd」と表示されている。

続いてVisual Studio側の設定で以下のように、サーバー欄に先ほどの発行サーバー接続情報を指定する。サイト名欄の設定内容はサイト名 / アプリケーション名とする。

サーバー欄のPC名は、IPアドレスでも構わない。