Сначала я начну с того, что этот вопрос похож на этот вопрос: Невозможно использовать msdeploy для синхронизации 2 веб-сайтов - ERROR_FRAMEWORK_VERSIONS_DO_NOT_MATCH.
На самом деле мой вариант использования отличается ... но, несмотря на это, я все еще пытался получить общую картину и следовать полученным там ответам. Однако это не сработало ...
Позволь мне объяснить.
В моем случае я пытаюсь перенести сайт, работающий на IIS 7.5 и Windows Server 2008 на другую машину работает IIS 10 и Windows Server 2016.
Я нашел хороший подробный учебник под названием Шаги по переносу веб-сайтов с IIS 7.5 на IIS 10 что идеально соответствовало моей ситуации, и я внимательно следил за ней, установив все необходимые роли и особенности на новом сервере и Веб-развертывание 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.config и msdepsvc.exe.config, на исходном и целевом сервере, а также перезапустил сервис wmsvc.
тем не мение независимо от того, какую комбинацию изменений я пробую, Я все еще получаю то же сообщение об ошибке.
Я также снова экспортировал веб-сайт после применения этих изменений, но импорт снова не удался с той же ошибкой.
Теперь я должен признать, что не совсем уверен, что все это у меня за спиной ... И в официальных, и в неофициальных статьях документации никогда не говорится, нужно ли вам редактировать исходную или конечную точку msdeploy.exe.config и msdepsvc.exe.config. Все это само собой разумеющееся! Более того, по какой-то причине Microsoft решила, что они должны использовать слова «клиент» и «сервер», и никогда не ясно, когда они относятся к исходному серверу и конечному серверу!
Итак, единственное, что я мог сделать, это внести здесь изменения, перезапустить службу, посмотреть, работает ли, внести изменения там, перезапустить службу, посмотреть, работает ли она ... и так далее ... пока я не стану все больше и больше сбиваться с толку и разочаровываться .
И еще одна вещь, которая сводит меня с ума, - это то, что на сайте origin используется .NET Framework 4.0 Classic пул приложений, но ошибка сообщает, что источник находится в .NET 2.0. ??? Как так?
Что ж, я был бы очень признателен, если бы кто-нибудь мог дать мне небольшое руководство, чтобы понять, что я делаю не так и как я могу это исправить ... Заранее большое спасибо!
Отвечая на это сам:
Проблема и источник путаницы заключались в том, что я смешивал подходы к веб-развертыванию на основе консоли и графического интерфейса пользователя (IIS).
В частности, я правильно изменял msdeploy.exe.config для Web Deploy, чтобы использовать .NET v4.0 в источнике, но тогда я не использовал msdeploy.exe командная строка для фактического развертывания, и вместо этого я использовал контекстное меню веб-сайта IIS развернуть> экспорт, который не считывает конфигурацию из указанного выше файла, но позволяет настраивать эти параметры в диалоговом окне во время процесса экспорта, используя конфигурация машины (32 и 64), которые по умолчанию были установлены на 2,0.
Поэтому я исправил это, просто сняв отметку с этих параметров в диалоговом окне экспорта, и все было хорошо импортировано на конечный компьютер.