Web Deploy with Visual Studio 2017
VSからIISへ FTP/FTPS での deploy は、処理があまりに遅くて精神によろしからず、Web Deploy 環境を作成してみた。俄然速い。
以下、IIS が走っているサーバー上での作業。
Step-1)
Control Panel の Program / Uninstall で、Microsoft Web Deploy *.* が存在していたら、一度 Uninstall しちゃおう。
Step-2)
Server Manager を立上げ、Web Server (IIS) をクリック。Role Services で Management Tools 下の Management Service が Installed されていなかったら、これを Install する。
Step-3)
Web Deploy 3.6 の msi をMSサイトからダウンロードしインストールする。Web Installer は使わんほうが良い。ここから重要、 インストーラーのデフォルトでは、remote web deploy に必要なモジュールがインストールされない。Custom を選択して全部インストールする!(これで2時間喰われた)。Service Manager て、Web Deployment Agent Service を Start: Automatic に変更し、Run する。その下に表示されている Web Management Service も Automatic, Started になっていることを指さし確認。
Step-4)
ここまでの作業が終了すると、サーバーは port 8172 を listen していないとおかしい。netstat -na して指さし確認。
Step-5)
IIS Manager を開き、Deploy 対象となる Site をクリック。Management 下に IIS Manager Permissions というアイコンが出来上がっているはず。無かったら、IIS Manager をリスタートしよう。アイコンをダブルクリック。Allow User... から、Windows の user を指定し、追加。以上で IIS サーバー側の作業はオシマイ。
Step-6)
開発環境に戻り、 VS2017 の Publish から new profile を作成。IIS, FTP, etc を選択。publish method で Web Deploy を選択。
Server: DNS が解決可能な host name or IP address
Site name: Default Web Site/<対象Siteの virtual path> (hosname/virtual dir ではうまくいかなかった)
User name: Step-5) で設定した user ID。 <server name\user name>
Password: そのパスワード
Destination URL: この設定はおまけ、deploy がうまく終了した際に IE が勝手に開きアクセスしに行くもの。無くても良い。
これにて Validate Connectionする。401とか404 が返ってきたら、多分に Layer 3 / Firewall あたりの何処かが間違っちょる。netstat -n して port: 8172 で SYN_SENT だったら、サーバー側の Firewall 設定等要確認。550が返ってくる場合は、Layer 3はまずOKっぽく、大体は Site Name の設定がダメ、"Default Web Site/<対象Siteの virtual path>" を要確認。
Step-7)
Windows Firewall, Advanced Security, Inbound Rules で Web Management Service (HTTP Traffic-In) という policy が作成されており、Scope の Remote IPs が Any IP address となっている。もし開発環境が Static IP を持っているなら、そいつで絞っておこう。
以下、IIS が走っているサーバー上での作業。
Step-1)
Control Panel の Program / Uninstall で、Microsoft Web Deploy *.* が存在していたら、一度 Uninstall しちゃおう。
Step-2)
Server Manager を立上げ、Web Server (IIS) をクリック。Role Services で Management Tools 下の Management Service が Installed されていなかったら、これを Install する。
Step-3)
Web Deploy 3.6 の msi をMSサイトからダウンロードしインストールする。Web Installer は使わんほうが良い。ここから重要、 インストーラーのデフォルトでは、remote web deploy に必要なモジュールがインストールされない。Custom を選択して全部インストールする!(これで2時間喰われた)。Service Manager て、Web Deployment Agent Service を Start: Automatic に変更し、Run する。その下に表示されている Web Management Service も Automatic, Started になっていることを指さし確認。
Step-4)
ここまでの作業が終了すると、サーバーは port 8172 を listen していないとおかしい。netstat -na して指さし確認。
Step-5)
IIS Manager を開き、Deploy 対象となる Site をクリック。Management 下に IIS Manager Permissions というアイコンが出来上がっているはず。無かったら、IIS Manager をリスタートしよう。アイコンをダブルクリック。Allow User... から、Windows の user を指定し、追加。以上で IIS サーバー側の作業はオシマイ。
Step-6)
開発環境に戻り、 VS2017 の Publish から new profile を作成。IIS, FTP, etc を選択。publish method で Web Deploy を選択。
Server: DNS が解決可能な host name or IP address
Site name: Default Web Site/<対象Siteの virtual path> (hosname/virtual dir ではうまくいかなかった)
User name: Step-5) で設定した user ID。 <server name\user name>
Password: そのパスワード
Destination URL: この設定はおまけ、deploy がうまく終了した際に IE が勝手に開きアクセスしに行くもの。無くても良い。
これにて Validate Connectionする。401とか404 が返ってきたら、多分に Layer 3 / Firewall あたりの何処かが間違っちょる。netstat -n して port: 8172 で SYN_SENT だったら、サーバー側の Firewall 設定等要確認。550が返ってくる場合は、Layer 3はまずOKっぽく、大体は Site Name の設定がダメ、"Default Web Site/<対象Siteの virtual path>" を要確認。
Step-7)
Windows Firewall, Advanced Security, Inbound Rules で Web Management Service (HTTP Traffic-In) という policy が作成されており、Scope の Remote IPs が Any IP address となっている。もし開発環境が Static IP を持っているなら、そいつで絞っておこう。
コメント
コメントを投稿