Windows-Server-2008

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

  • May 6, 2020

首先,我首先要說這個問題類似於這個問題:Cannot use msdeploy to sync 2 website - ERROR_FRAMEWORK_VERSIONS_DO_NOT_MATCH

實際上我的案例是不同的……但儘管如此,我仍然試圖了解大局並在那裡遵循答案。然而它沒有工作……

讓我解釋。

就我而言,我正在嘗試將在IIS 7.5Windows Server 2008上執行的網站遷移到另一台執行IIS 10Windows Server 2016的機器上。

我找到了一個很好的詳細教程,名為“將網站從 IIS 7.5 遷移到 IIS 10 ”,它完全符合我的情況,我仔細地遵循了它,在新伺服器上安裝了所有必需的角色和功能,並在兩台伺服器上安裝了****Web Deploy 3.6(集成了在兩個 IIS 管理器上正確,將“部署”選項添加到上下文菜單中)。

所以我成功地導出了網站,但是當我嘗試在 IIS 10 中導入它時,導入操作因以下錯誤而停止:

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

ERROR_FRAMEWORK_VERSIONS_DO_NOT_MATCH

了解更多資訊: 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.configmsdepsvc.exe.config中,還重新啟動了wmsvc 服務

但是*,無論我嘗試哪種更改組合*,我仍然會收到相同的錯誤消息。

應用這些更改後,我還再次導出了網站,但導入再次失敗並出現相同的錯誤。

現在,我不得不承認,我不確定我是否掌握了這一切……官方和非官方文件文章都沒有明確說明您是否必須編輯源或目標msdeploy.exe.configmsdepsvc.exe .config。這一切都是理所當然的!此外,出於某種原因,Microsoft 決定他們必須使用“客戶端”和“伺服器”這兩個詞,而這些詞指的是源伺服器和目標伺服器,這永遠不清楚!

所以我唯一能做的就是在這裡進行更改,重新啟動服務,看看是否有效,在那裡進行更改,重新啟動服務,看看它是否有效……等等……直到我越來越困惑和沮喪.

讓我發瘋的另一件事是源網站使用**.NET Framework 4.0 Classic應用程序池,但錯誤抱怨源在.NET 2.0 上。**???那個怎麼樣?

好吧,如果有人能給我一些指導以了解我做錯了什麼以及如何解決它,我將不勝感激……提前非常感謝!

自己回答這個問題:

問題和混淆的根源在於我混合了基於控制台和基於 GUI (IIS) 的 Web 部署方法。

具體來說,我正確地修改了Web Deploy 的msdeploy.exe.config以在源上使用 .NET v4.0,但後來我沒有使用msdeploy.exe命令行來實際部署,而是使用 IIS 網站上下文menu deploy > export,它不會從上述文件中讀取配置,但允許您在導出過程中在對話框視窗中配置這些設置,使用預設設置為 2.0 的機器配置(32 和 64)參數。

所以我通過簡單地在導出對話框視窗中取消勾選這些參數來解決這個問題,並且所有內容都很好地導入了目標機器。

引用自:https://serverfault.com/questions/916616