Windows

如何更新 machineConfig64 .Net Framework 配置提供程序

  • July 25, 2016

我正在嘗試將 IIS 站點從具有 IIS7.5 的舊 Windows Server 2008 R2 同步到具有 IIS8.5 的新 Windows Server 2012 R2。我正在使用 WDeploySnapin3.0 PowerShell Snapin

現在我收到以下錯誤:

Sync-WDSite : the versions of the .NET Framework-configuration provider
(machineConfig64) differ from source (2.0) and destination (4.0). More 
information on: http://go.microsoft.com/fwlink
/?LinkId=221672#ERROR_FRAMEWORK_VERSIONS_DO_NOT_MATCH.

可以在此處找到此錯誤的兩種解決方案:http: //go.microsoft.com/fwlink/ ?LinkId=221672#ERROR_FRAMEWORK_VERSIONS_DO_NOT_MATCH 。

第一個解決方案不符合我的需求,因為我不使用該msdeploy.exe工具。

第二個解決方案告訴我在我所做的源機器上編輯配置文件。我msdepsvc.exe.config從這個改變了:

<configuration>
 <startup  useLegacyV2RuntimeActivationPolicy="true" >
   <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
   <supportedRuntime version="v2.0.50727" />
 </startup>
</configuration>

對此:

<configuration>
 <startup  useLegacyV2RuntimeActivationPolicy="true" >
   <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
 </startup>
</configuration>

還有msdeploy.exe.config這個:

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

對此:

<configuration>
 <startup>
   <supportedRuntime version="v4.0" />
 </startup>
</configuration>

之後我重新啟動了wmsvc服務net stop wmsvc ; net start wmsvc但它沒有工作,錯誤仍然發生

現在我只想更新我的源伺服器的版本。我怎麼做?.NET Framework 4.6 安裝在源伺服器上,我只需要在某處編輯配置嗎?還是我需要更新的管理框架?

謝謝!

**編輯:**我也嘗試只使用配置文件中的 v2.0 條目(如微軟建議的那樣),但它也沒有工作。我也不明白為什麼它說源伺服器使用 .NET 2.0 - apppool 和應用程序本身使用 4.0+

這個問題的答案是不要“更新” machineConfig64 提供程序,而是以雜湊表的形式告訴 PowerShell 確切地採用哪個提供程序。將雜湊表作為-sourcesettings參數-destinationsettings

[hashtable]$settings = @{
   'machineconfig32.netfxversion' = 2
   'machineconfig64.netfxversion' = 2
   'rootwebconfig32.netfxversion' = 2
   'rootwebconfig64.netfxversion' = 2
}

[...] # some more code

$sync = Sync-WDSite $Name $Name -sitephysicalpath $spp `
                               -SourcePublishSettings $publishsettings `
                               -IncludeApppool `
                               -WarningAction Continue `
                               -ErrorAction Stop `
                               -sourcesettings $settings `
                               -destinationsettings $settings `
                               -debug

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