#概要
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アドレスでも構わない。