Pergunta

Depois de migrar o TeamCity de um servidor para outro e também mudar para o Visual Studio 2013, nossa compilação falha ao usar o MSDeploy para pressionar um pacote .zip construído no TC para o IIS.

O pool de aplicativos que você está tentando usar possui a propriedade 'ManagementRuntimeVersion' definida como 'v4.0'. Este aplicativo requer 'v4.5'

Este é um erro estranho, pois meu servidor IIS .NET 4.5 instalou e está funcionando feliz e sendo implantado há semanas, e um pool de aplicativos 4.0 executará um aplicativo 4.5 direcionado.

Infelizmente, as águas estão confusas pelas mudanças no TC e no VS (2013), então o que causou o problema de que não posso ter certeza.

Nota: Nosso servidor TC tem apenas o Visual Studio 2012, já que estou no MSDN e obteve acesso antecipado a 2013. Isso pode ser o culpado, mas não torna o problema menos estranho.

Foi útil?

Solução

Eu preferiria não desabilitar a verificação da versão do tempo de execução .NET (com o ignoredEployManagedRuntimeVersion), mas, em vez disso, a versão de tempo de execução implícita via destaque

<DeployManagedRuntimeVersion>v4.0</DeployManagedRuntimeVersion>

Mais alguns detalhes: http://techblog.dorogin.com/2013/11/deploying-45-projects-with-webdeploylent.html

Outras dicas

Abre o teu .csproj Arquive e defina o seguinte elemento:

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>

Adicioná -lo logo acima deste elemento ajuda a legibilidade:

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

Parabéns a https://stackoverflow.com/users/1769923/abhishikt-n-jain Para responder com esta configuração de configuração pouco conhecida aqui:

Msbuild implantar falhando após atualizar para .net 4.5

Se alguém souber Por quê Isso acontece, por favor, sinta -se à vontade para adicionar uma resposta.

Atualizar

Desconsidere meus comentários abaixo. Enquanto isso me passou da implantação, eu tenho um 503 Service Unavailable Quando eu realmente tentei executar o aplicativo da web. Eu recuei essa mudança definindo o managedRuntimeVersion propriedade de volta à v4.0 e adicionou o IgnoreDeployManagedRuntimeVersion para o meu projeto. Em seguida, a implantação foi bem -sucedida e o aplicativo funcionou. Idiota...


Isso aconteceu comigo depois que eu instalei o .NET Framework 4.5.1 em uma máquina Windows Server 2008 R2 SP1 (como parte da atualização do PowerShell).

A interface do usuário do IIS no Windows Server 2008 não oferece a opção de definir o managedRuntimeVersion propriedade para v4.5 mesmo depois que a versão é instalada. No entanto, isso pode ser feito na linha de comando usando o appcmd O utilitário como a resposta de @3Boysdad mostra.

appcmd é o equivalente da linha de comando de gerenciar sites do IIS, aplicativos, AppPools, etc. está localizado em %systemroot%\system32\inetsrv\appcmd.exe Mas não está no caminho como o link a seguir explica:

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

Eu sou da opinião de que modificando seu projeto (através do IgnoreDeployManagedRuntimeVersion ou DeployManagedRuntimeVersion propriedades) é subótimo. O pool de aplicativos deve ser definido para usar a v4.5, e a única maneira de fazer isso no Windows Server 2008 é usar o appcmd Utilitário. @3Boysdad A resposta deve ser a resposta aceita.

Encontrei esta jóia enquanto procurou o mesmo problema.

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

Isso precisará ser executado no seu diretório system32 inetsrv.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top