如何使用 msdeploy 在远程服务器上部署现有网站

How to use msdeploy to deploy an existing website on remote server

我已经在 Windows 服务器 2012 上的 IIS 上创建了一个网站 "MyWebsite",物理路径是 C:\builds\MyWebsite\wwwroot,目录 [=] 下还有 1 个其他文件夹 approot 13=],这也是制作网站所必需的运行。我想做的是:

  1. 在远程服务器中创建一个新文件夹 C:\builds\MyWebsiteNewBuild,用于放置我的新版本;
  2. 将我的新构建 D:\Release\PublishOutput 从我的本地机器转储到远程服务器,发布输出有 2 个子文件夹:wwwrootapproot
  3. 将 "MyWebsite" 的物理路径更改为新创建的文件夹 C:\builds\MyWebsiteNewBuild\wwwroot,然后重新启动服务。

我是msdeploy新手,搜索了一下好像可以用

    msdeploy.exe -verb:dump-source:contentPath="D:\Release\PublishOutput" -dest:contentPath="C:\builds\MyWebsiteNewBuild",computerName="https://**.**.**.**/MsDeploy.axd",userName='administrator',password="*****",authType='Basic' -allowUntrusted

将我的新构建转储到远程服务器的目标文件夹,但是其他要求,例如更改我现有网站的物理路径,我不知道该怎么做。

您可以使用清单通过 WebDeploy 使用 appcmd 更改网站路径。

<runcommand path="%windir%\system32\inetsrv\appcmd set app /app.name:&quot;Default Web Site/app12&quot; /&#91;path='/'&#93;.physicalPath:C:\temp\app12" waitInterval="5000"/>

http://www.dotnetcatch.com/2016/06/28/webdeploymsdeploy-quick-tip-change-iis-siteapp-physical-path-with-msdeploy/

以下post描述了如何基于清单创建自定义 WebDeploy 包:

http://www.dotnetcatch.com/2016/06/23/deploy-an-asp-net-website-not-web-application-with-msdeploy/