msdeploy 失败:IIS 7.5->8.5:错误:目标系统上的 ApplicationHost.config 文件无效/事件日志错误 9000

问题描述 投票:0回答:2

使用 msdeploy.exe v7.1(即 cmd 提示符下的版本)、3.6(来自 Web 平台安装程序)

从 Win2008-R2 IIS 迁移到 Win2012-R2

尝试将所有与 IIS 相关的内容移过去。 (是的,我们已经自定义了 applicatiohost.config,但我们不知道所有的 mods...这就是为什么我们使用迁移工具来移动所有内容...)

我正在运行的命令:

C:\Program Files\IIS\Microsoft Web Deploy V3>msdeploy 
-verb:sync -source:webserver,
computername=WIN-67E8GTGADGJ 
-dest:webserver,computername=192.168.2.21,
userName="administrator",password="###"

输出:

Info: Using ID '1d59e6bd-0f89-4479-9853-98e164c9f613' for connections to the rem
ote server.
Info: Using ID '0c99bd7f-faa3-4737-ac35-d65c495402b6' for connections to the rem
ote server.
Info: Adding MSDeploy.webServer (MSDeploy.webServer).
Info: Adding webServer (MSDeploy.webServer/webServer).
Info: Adding appHostConfig ().
Error: (8/24/2015 10:28:43 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

然后源系统上的 msdeploy 抛出异常(并且 msdeploy 退出):

Error: (8/25/2015 4:36:50 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.

更新:最初我在目标系统上收到两个事件日志错误。消息 9000 和 9012。我能够通过扩展 applicationhost.config 文件来修复 9012。但是花了几个小时仍然没有解决 9000 错误。

我检查了ApplicationHost.config,并将其与基线进行了比较,确实似乎没有什么特别的。

解决问题的途径是什么?

iis msdeploy
2个回答
2
投票

答案是 msdeploy 似乎确实存在问题,但似乎没有人理解(或记录)原因。该工具主要是为了从 IIS 6.x (Win 2003) 迁移到较新的 IIS 而构建的。

根据我们的经验,从 IIS 7.x 到 8.x 时,您通常无法通过“source:webserver”方法使用 msdeploy。然而,msdeploy 可以为您完成从 7.x 到 8.x 的大量提升。

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

首先,执行三个步骤。这将使 msdeploy 尽可能多地移动(如果它可以移动更多,那就太好了,但这是我所见过的工作):

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 系统范围的设置(压缩就是一个例子),您需要自行决定。

不要问我为什么没有关于如何执行此操作的文档。 (不要问我为什么 msdeploy 不能只做整个该死的服务器。它在 IIS 6 上工作得很好,但在 IIS 7 上却不行,这是什么样的疯狂?无论如何,给 Satya 发送一封关于它的电子邮件。)


0
投票

您可能没有运行提升的命令(作为管理员)。我收到了这个完全相同的错误并通过运行提升解决了它。

© www.soinside.com 2019 - 2024. All rights reserved.