Windows
如何更新 machineConfig64 .Net Framework 配置提供程序
我正在嘗試將 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