Как обновить machineConfig64 .Net Framework-провайдера конфигурации
Я пытаюсь синхронизировать сайт IIS от старого Windows Server 2008 R2 с IIS7.5 до нового Windows Server 2012 R2 с IIS8.5. Я делаю это с помощью оснастки PowerShell WDeploySnapin3.0
Теперь я получил следующую ошибку:
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.
Первое решение не соответствует моим потребностям, потому что я не использую 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 в файлах конфигурации (как это было предложено Microsoft), но она также не работала. Я также не понимаю, почему он говорит, что исходный сервер использует.NET 2.0 - приложение и само приложение используют 4.0+
1 ответ
Ответ на эту проблему состоит не в том, чтобы "обновлять" провайдера 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