msdeploy -verb:sync webserver: 目标事件查看器中出现 9000 错误

msdeploy -verb:sync webserver: 9000 error in destination event viewer

从 Win2008-R2 到 Win2012-R2:

目标上的错误在事件日志中为 9000。上下看了看,看不出如何解决这个问题。

命令是:

msdeploy -verbose -verb:sync -source:webserver,computername=WIN-67E8GTGADGJ -dest:webserver,computername=192.168.2.21,userName="administrator",password="###" 

在cmd行,返回的错误是:

Error: (8/25/2015 5:07:09 PM) An error occurred when the request was processed on the remote computer.
Error: The ApplicationHost.config file is invalid. Cannot proceed with synchronization.
Error count: 1.

在目标系统上,事件日志中存在错误:

Microsoft-Windows-IIS-APPHOSTSVC -- message 9000

看来应该有办法解决。目标是具有 IIS 角色的干净的 Win2012-R2

网络上没有有用的文档来解决这个问题。

注意:此线程的评论者一直说 msdeploy 不支持 IIS 8.x。那个评论者是错误的。 http://www.iis.net/downloads/microsoft/web-deploy

msdeploy 似乎确实存在问题,但似乎没有人理解(或记录)原因。该工具主要用于从 IIS 6.x (Win 2003) 到较新的 IIS。

根据我们的经验,当从 IIS 7.x 转到 8.x 时,您通常无法将 msdeploy 与 "source:webserver" 方法一起使用。但是,msdeploy 可以为您做很多提升,从 7.x 到 8.x。

以下是我见过的一些有效步骤:

msdeploy -verbose -verb:sync -source:apphostconfig="WEB SITE NAME",computername=SOURCEMACHINE -dest:apphostconfig="WEB SITE NAME",computername=DESTINATIONMACHINE,userName="administrator",password="password-here"  -enableLink:AppPoolExtension

注意 "enablelink" 标志。

重复以上操作:

  • -enableLink:CertificateExtension 然后
  • -enableLink:FrameworkConf

完成后,msdeploy 已尽其所能。您现在应该已迁移站点,包括内容和应用程序池、ssl 证书以及与站点和应用程序池相关的配置。

对于 mime 映射和其他 IIS 系统范围的设置(压缩是一个例子),您自己做主。