Pregunta

Después de migrar TeamCity de un servidor a otro, y también cambiar a Visual Studio 2013, nuestra compilación falla cuando se usa MSDePloy para impulsar un paquete .zip construido por TC a IIS.

El grupo de aplicaciones que está intentando usar tiene la propiedad 'ManagedRuntiMeversion' establecida en 'V4.0'. Esta aplicación requiere 'v4.5'

Este es un error extraño ya que mi servidor IIS tiene .NET 4.5 instalado y se ha ejecutado felizmente y se ha implementado durante semanas, y un grupo de aplicaciones 4.0 ejecutará una aplicación de 4.5 dirigida.

Desafortunadamente, las aguas están confundidas por los cambios en TC y VS (2013), entonces, ¿qué causó el problema del que no puedo estar seguro?

Nota: Nuestro servidor TC solo tiene Visual Studio 2012, ya que estoy en MSDN y obtuve acceso temprano a 2013. Este podría ser el culpable, pero no hace que el problema sea menos extraño.

¿Fue útil?

Solución

Prefiero no deshabilitar la verificación de la versión de tiempo de ejecución de .NET (con IgnoredEployManagedRuntiMeversion), sino que implícitamente establece la versión de tiempo de ejecución a través de implementGanagedRuntiMeversion:

<DeployManagedRuntimeVersion>v4.0</DeployManagedRuntimeVersion>

Algunos detalles más: http://techblog.dorogin.com/2013/11/deploying-45-projects-with-webdeploy.html

Otros consejos

Abre tu .csproj archivo y establecer el siguiente elemento:

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>

Agregarlo justo por encima de este elemento ayuda a la legibilidad:

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

Felicitaciones a https://stackoverflow.com/users/1769923/abhishikt-n-Jain Para responder con esta configuración poco conocida aquí:

Msbuild implement fallando después de la actualización a .net 4.5

Si alguien sabe por qué Esto sucede, no dude en agregar una respuesta.

Actualizar

No tenga en cuenta mis comentarios a continuación. Mientras me hizo pasar el despliegue, obtuve un 503 Service Unavailable Cuando realmente intenté ejecutar la aplicación web. Retrocedí este cambio estableciendo el managedRuntimeVersion propiedad de regreso a v4.0 y agregó el IgnoreDeployManagedRuntimeVersion a mi proyecto. Luego el despliegue tuvo éxito y la aplicación funcionó. Mudo...


Esto me sucedió después de instalar .NET Framework 4.5.1 en una máquina Windows Server 2008 R2 SP1 (como parte de la actualización de PowerShell).

La interfaz de usuario de IIS en Windows Server 2008 no da la opción de configurar el managedRuntimeVersion Propiedad a V4.5 incluso después de que se instale esa versión. Sin embargo, esto se puede hacer en la línea de comando usando el appcmd Utility como muestra la respuesta de @3boysdad.

appcmd es el equivalente de línea de comandos para administrar sitios IIS, aplicaciones, apppools, etc. se encuentra en %systemroot%\system32\inetsrv\appcmd.exe Pero no está en el camino como explica el siguiente enlace:

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

Soy de la opinión de que modificar su proyecto (a través del IgnoreDeployManagedRuntimeVersion o DeployManagedRuntimeVersion propiedades) es subóptimo. El grupo de aplicaciones debe configurarse para usar V4.5, y la única forma de hacerlo en Windows Server 2008 es usar el appcmd utilidad. La respuesta de @3boysdad debe ser la respuesta aceptada.

Encontré esta gema mientras cazaba por este mismo problema.

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

Esto deberá ejecutarse en su directorio system32 inetSRV.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top