No aparece la versión 3.5 en la lista de versiones disponibles de IIS

by Marc Cortada 09/09/2012

Yo también he buscado esta versión en la lista desplegable para poner en marcha una aplicación compilada con la 3.5, pero no está ¡y no aparecerá! Incluso, como muchos, he buscado el aspnet_regiis para registrar la 3.5 ¡pero tampoco se puede registrar!

La clave está en que .NET 3.5 es una extensión de .NET 2.0. Eso es: la versión 3.5 no es una versión completamente independiente como lo son la 2.0 o la 4.0. Se han realizado cambios en el lenguaje de programación como la capacidad para utilizar tipos anónimos, extensión de métodos, expresiones lambda, LINQ, se ha integrado AJAX… Sin embargo, al no ser una nueva versión, a nivel de IIS todo queda exactamente igual. Para que una aplicación compilada en 3.5 funcione, dejaremos marcada la versión 2.0 en la configuración del grupo de aplicaciones de IIS (para empezar). Y ahora viene la pregunta: ¿funcionará? Puede que aún no, queda alguna cosilla más...  

Cuando se instala el redistribuible .NET 3.5 en el servidor, se instalan los nuevos ensamblados en el GAC (Global Assembly Cache) y cualquier sitio web que tenga alguna referencia hacia los nuevos ensamblados no tendrá que hacer ningún cambio. Por lo tanto bastará con publicar el sitio web 3.5 etiquetado como 2.0.

Ya solo queda un detalle: el compilador. Las nuevas funcionalidades requieren un nuevo compilador, es evidente que un código basado en .NET 3.5 puede que no se compile correctamente con el compilador 2.0. La solución está en el archivo web.config, y para automatizarlo, VisualStudio 2008 crea unas entradas en este archivo al actualizar un proyecto hecho en una versión anterior de ASP.NET 3.5. A modo de ejemplo, la entrada del web.config que indica la versión del compilador es:

<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
              type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <providerOption name="CompilerVersion" value="v3.5"/>
      <providerOption name="WarnAsError" value="false"/>
    </compiler>

Así que para que para poner en marcha aplicaciones en IIS desarrolladas en la versión 3.5 de .NET framework, solamente tendremos que instalar el framework 3.5 en el sistema, seleccionar la versión 2.0 y dejar que VisualStudio nos adapte el web.config. Esto aplica tanto a IIS 6 como 7. Si cambiamos la versión en las propiedades del proyecto (hacia versión más nueva o anterior) también se realizan los cambios necesarios en el archivo web.config (al menos en VisualStudio 2010).

El diálogo que se muestra al abrir un proyecto con una versión anterior de .NET Framework es la que veis debajo de estas líneas. Como se puede leer en el mensaje, si no se actualiza ahora puede hacerse más adelante en las propiedades del proyecto.

Fuente:

Este artículo está extraído, resumido y traducido de este original. El original está muy bien, así que si hay que felicitar a alguien, mejor felicitar al autor original (yo ya lo he hecho). El autor justifica con más detalle el hecho de que 3.5 es extensión y no es una nueva versión.

Tags:

Categorías: ASP.NET | C# | IIS | Programación y desarrollo

No se aceptan más comentarios

Entradas por mes