MSDEPLOY - Невозможно развернуть пакет .NET v4.5 в пул приложений v4.0

StackOverflow https://stackoverflow.com/questions/19834307

Вопрос

После миграции TeamCity с одного сервера на другой, а также переключившись на Visual Studio 2013, наша сборка не удается при использовании MSDeploy, чтобы подтолкнуть пакет с TC .ZIP в IIS.

Пул приложений, который вы пытаетесь использовать, имеет свойство «ManagedRuntimeVersion», установленное в «v4.0». Это приложение требует 'v4.5'

Это странная ошибка, так как мой сервер IIS установил .NET 4.5, и он с радостью работал и развернулся в течение нескольких недель, а пул приложений 4.0 будет запускать приложение 4.5.

К сожалению, вода оживляется изменениями в TC и VS (2013), поэтому, в чем я не могу быть уверен.

Примечание. На нашем TC Server есть только Visual Studio 2012, так как я нахожусь в MSDN и получил ранний доступ к 2013 году. Это может быть виновником, но не делает проблему менее странной.

Это было полезно?

Решение

Я бы предпочел вообще не отключить проверку версии выполнения .NET вообще (с игнорированием inegredeploymanagedruntimeversion), но вместо этого неявная версия выполнения SET через DeployManagedRuntimeversion:

<DeployManagedRuntimeVersion>v4.0</DeployManagedRuntimeVersion>

Некоторые подробности: http://techblog.dorogin.com/2013/11/deploying-45-projects-with-webdeploy.html

Другие советы

Откройте свой .csproj файл и установите следующий элемент:

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>

Добавление его чуть выше этого элемента помогает читаемости:

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

Престижность https://stackoverflow.com/users/1769923/abhishikt-n-jain Для ответа с этой малоизвестной настройкой конфигурации здесь:

MSBuild Deploy сбой после обновления до .NET 4.5

Если кто -то знает Почему Это происходит, пожалуйста, не стесняйтесь добавлять ответ.

Обновлять

Не обращайте внимания на мои комментарии ниже. В то время как это заставило меня мимо развертывания, я получил 503 Service Unavailable Когда я действительно пытался запустить веб -приложение. Я поддержал это изменение, установив managedRuntimeVersion свойство обратно в V4.0 и добавила IgnoreDeployManagedRuntimeVersion к моему проекту. Затем развертывание преуспело, и приложение сработало. Тупой...


Это случилось со мной после того, как я установил .NET Framework 4.5.1 на машине Windows Server 2008 R2 SP1 (как часть обновления PowerShell).

Пользовательский интерфейс IIS на Windows Server 2008 не дает возможности настройки managedRuntimeVersion свойство в V4.5 даже после установки этой версии. Однако это можно сделать в командной строке, используя appcmd Утилита, как показывает ответ @3boysdad.

appcmd Является ли командная линия эквивалентом управления сайтами IIS, приложений, приложений и т. Д. %systemroot%\system32\inetsrv\appcmd.exe Но это не на пути, как объясняет следующая ссылка:

http://www.iis.net/learn/get-started/getting-started-with-iis/getting-started-with-appcmdexe#howtouse

Я считаю, что изменяет ваш проект (через IgnoreDeployManagedRuntimeVersion или же DeployManagedRuntimeVersion Свойства) является неоптимальным. Пул приложений должен быть настроен на использование v4.5, и единственный способ сделать это на Windows Server 2008 - использовать appcmd полезность. @3boysdad's Ответ должен быть принятым ответом.

Нашел этот драгоценный камень во время охоты на эту же проблему.

appcmd set apppool /apppool.name: <your app pool> /managedRuntimeVersion:v4.5

Это должно быть выполнено в вашем каталоге system32 inetsrv.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top