Question

Après avoir migré TeamCity d'un serveur à un autre, et également passer à Visual Studio 2013, notre build échoue lors de l'utilisation de MSDEPLOY pour pousser un package .zip construit par TC vers IIS.

Le pool d'applications que vous essayez d'utiliser a la propriété «ManagedRuntimeVersion» définie sur «v4.0». Cette application nécessite «v4.5»

Il s'agit d'une erreur étrange car mon serveur IIS a installé .NET 4.5 et est heureux en cours d'exécution et en cours de déploiement depuis des semaines, et un pool d'applications 4.0 exécutera une application ciblée 4.5.

Malheureusement, les eaux sont boueuses par les modifications apportées à TC et VS (2013), ce qui a causé le problème dont je ne peux pas être sûr.

Remarque: Notre serveur TC a uniquement Visual Studio 2012, car je suis sur MSDN et j'ai eu un accès précoce à 2013. Cela pourrait être le coupable, mais ne rend pas le problème moins étrange.

Était-ce utile?

La solution

Je préférerais ne pas du tout à la vérification de la version .Net Runtime désactivée (avec IgnorePloyManagedRunTimeVersion), mais à la place, la version Runtime Set Implicit via DeploymanagedRuntimeVersion:

<DeployManagedRuntimeVersion>v4.0</DeployManagedRuntimeVersion>

Quelques détails supplémentaires: http://techblog.dorogin.com/2013/11/deploying-45-projects-with-webdeploy.html

Autres conseils

Ouvrez votre .csproj fichier et définir l'élément suivant:

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>

L'ajouter juste au-dessus de cet élément aide la lisibilité:

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

Bravo à https://stackoverflow.com/users/1769923/abhishikt-n-jain Pour répondre avec ce paramètre de configuration peu connu ici:

MSBUILD Deploy échoue après la mise à niveau vers .NET 4.5

Si quelqu'un sait Pourquoi Cela se produit, n'hésitez pas à ajouter une réponse.

Mise à jour

Ne tenez pas compte de mes commentaires ci-dessous. Alors que cela m'a fait passer le déploiement, j'ai obtenu un 503 Service Unavailable Quand j'ai essayé d'exécuter l'application Web. J'ai reculé ce changement en définissant le managedRuntimeVersion la propriété de retour à v4.0 et a ajouté le IgnoreDeployManagedRuntimeVersion à mon projet. Ensuite, le déploiement a réussi et l'application a fonctionné. Stupide...


Cela m'est arrivé après avoir installé .NET Framework 4.5.1 sur une machine Windows Server 2008 R2 SP1 (dans le cadre de la mise à niveau de PowerShell).

L'interface utilisateur IIS sur Windows Server 2008 ne donne pas la possibilité de définir le managedRuntimeVersion Propriété vers V4.5 Même après l'installation de cette version. Cependant, cela peut être fait sur la ligne de commande en utilisant le appcmd Utilité comme réponses de @ 3boysdad.

appcmd est l'équivalent de la ligne de commandement de la gestion des sites, des applications, des apppools, etc. Il est situé à %systemroot%\system32\inetsrv\appcmd.exe Mais ce n'est pas sur le chemin comme l'explique le lien suivant:

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

Je suis d'avis que modifier votre projet (via le IgnoreDeployManagedRuntimeVersion ou DeployManagedRuntimeVersion Propriétés) est sous-optimale. Le pool d'applications doit être défini pour utiliser le v4.5, et la seule façon de le faire sur Windows Server 2008 est d'utiliser le appcmd utilitaire. La réponse de @ 3boysdad devrait être la réponse acceptée.

J'ai trouvé ce joyau tout en chassant pour ce même problème.

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

Cela devra être exécuté dans votre répertoire System32 INETSRV.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top