Как обновить 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
Другие вопросы по тегам