错误:.NET Framework 配置提供程序 (machineConfig64) 的版本在源 (2.0) 和目标 (4.0) 上不同

错误:.NET Framework 配置提供程序 (machineConfig64) 的版本在源 (2.0) 和目标 (4.0) 上不同

首先我要说的是,这个问题与这个问题类似:无法使用 msdeploy 同步 2 个网站 - ERROR_FRAMEWORK_VERSIONS_DO_NOT_MATCH

实际上我的用例不同...但尽管如此,我仍然试图了解大局并遵循那里的答案。然而它没有奏效...

让我解释。

就我而言,我正在尝试迁移一个运行在IIS 7.5Windows 服务器 2008到另一台运行的机器IIS 10Windows 服务器 2016

我找到了一个很好的详细教程叫做将网站从 IIS 7.5 迁移到 IIS 10 的步骤这完全符合我的情况,我仔细地按照它,安装了所有必需的角色和功能在新服务器上Web 部署 3.6在两台服务器上(在两个 IIS 管理器上都正确集成,将“部署”选项添加到上下文菜单中)。

因此,我成功导出了该网站,但是当我尝试在 IIS 10 中导入它时,导入操作因以下错误而停止:

.NET Framework 配置提供程序 (machineConfig64) 的版本在源 (2.0) 和目标 (4.0) 上不同。

错误_框架_版本_不匹配

了解更多信息: https://docs.microsoft.com/en-us/iis/publish/troubleshooting-web-deploy/web-deploy-error-codes#ERROR_FRAMEWORK_VERSIONS_DO_NOT_MATCH

现在,我确实阅读了上述文档页面以及另一篇文章:https://blogs.msdn.microsoft.com/ericparvin/2015/04/03/error_framework_versions_do_not_match/

并按照建议,我尝试反转

<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />

同时在msdeploy.exe 配置msdepsvc.exe 配置,在源服务器和目标服务器上,并重新启动wmsvc 服务

然而无论我尝试哪种组合变化,我仍然收到相同的错误信息。

应用这些更改后,我也再次导出了网站,但导入再次失败并出现同样的错误。

现在,我不得不承认,我不太确定我是否已经掌握了这些知识……无论是官方还是非官方的文档文章都没有明确说明是否必须编辑原点或目的地msdeploy.exe 配置msdepsvc.exe 配置。这一切都是理所当然的!此外,出于某种原因,微软决定必须使用“客户端”和“服务器”这两个词,但从不清楚它们何时指的是原始服务器和目标服务器!

所以我唯一能做的就是在这里做出改变,重新启动服务,看看是否有效,在那里做出改变,重新启动服务,看看是否有效......等等......直到我越来越困惑和沮丧。

另一件让我抓狂的事情是,Origin 网站使用了一个.NET Framework 4.0 经典版应用程序池,但错误抱怨来源是.NET 2.0。??? 那个怎么样?

好吧,如果有人能给我一点指导,让我明白我做错了什么以及如何解决它,我将不胜感激......提前谢谢了!

答案1

我自己回答这个问题:

问题和混乱的根源是我混合使用了基于控制台和基于 GUI(IIS)的 Web 部署方法。

具体来说,我正确地修改了msdeploy.exe 配置为 Web Deploy 在源上使用 .NET v4.0,但我没有使用部署工具命令行进行实际部署,而是使用 IIS 网站上下文菜单部署 > 导出,它不会从上述文件中读取配置,但允许您在导出过程中在对话框窗口中配置这些设置,使用机器配置(32 和 64)参数默认设置为 2.0。

因此,我通过在导出对话框窗口中取消勾选这些参数来解决这个问题,并且所有内容都可以顺利导入目标机器。

相关内容