Cómo: Actualizar una aplicación web de ASP.NET a ASP.NET 4

Si utiliza Visual Studio para abrir un proyecto web que se desarrolló para .NET Framework 2.0, .NET Framework 3.0 o .NET Framework 3.5, Visual Studio puede realizar automáticamente todos los cambios en los archivos Web.config necesarios para poder ejecutarse utilizando .NET Framework versión 4. Si el proyecto es un proyecto IIS local y está utilizando IIS 7.0, Visual Studio también puede reasignar la aplicación a un grupo de aplicaciones que está asociado a .NET Framework versión 4.

Se recomienda utilizar Visual Studio para realizar las tareas necesarias para actualizar. Si no utiliza Visual Studio para realizar la actualización automáticamente, debe editar manualmente el archivo Web.config y asociar manualmente la aplicación en IIS con .NET Framework versión 4.

Normalmente los procedimientos que cubre este tema son suficientes para actualizar una aplicación web, porque las versiones posteriores de .NET Framework están diseñadas para que sean compatibles con versiones anteriores. Sin embargo, también debería buscar en la documentación léame los últimos cambios. Es posible que en la versión más reciente de .NET Framework se haya cambiado el comportamiento de un componente desarrollado para una versión anterior de .NET Framework.

NotaNota

No actualice una aplicación de IIS si contiene aplicaciones anidadas diseñadas para versiones anteriores de .NET Framework. Si una aplicación de IIS diseñada para .NET Framework 3.5 o una versión anterior está anidada dentro de una aplicación de IIS diseñada para .NET Framework 4, es posible que el compilador notifique errores al compilar la aplicación anidada. Esto es debido a que los archivos Web.config heredan los valores de los archivos ubicados en la parte superior de la jerarquía de archivos de configuración. .NET Framework 4 es compatible con versiones anteriores; por consiguiente, una aplicación web anidada diseñada para .NET Framework 4 puede heredar los valores de los archivos Web.config diseñados para versiones anteriores. Sin embargo, las versiones anteriores de .NET Framework no son compatibles con las versiones posteriores; por consiguiente, no pueden heredar los valores de los archivos Web.config de .NET Framework 4.

Para actualizar una aplicación utilizando Visual Studio

  1. Abra el sitio o proyecto web en Visual Studio.

  2. Si aparece un cuadro de diálogo de bienvenida Asistente para conversión de Visual Studio, haga clic en Siguiente.

    Este asistente aparece al abrir un proyecto de aplicación web o una solución. No aparece al abrir un proyecto de sitio web que no está en una solución.

    Cuadro de diálogo Asistente para conversión de Visual Studio
  3. Si está convirtiendo un proyecto, en el Asistente para conversión de Visual Studio, seleccione las opciones de copia de seguridad y haga clic en Siguiente en el cuadro de diálogo Elija si prefiere crear una copia de seguridad.

    Opción copia de seguridad del cuadro de diálogo Asistente para conversión de Visual Studio

    Visual Studio actualiza el archivo de proyecto al formato de Visual Studio 2010. Si está actualizando una solución en lugar de un proyecto individual, Visual Studio actualiza el archivo de solución al formato de Visual Studio 2010.

  4. Si está convirtiendo un proyecto, en el Asistente para conversión de Visual Studio, haga clic en Siguiente en el cuadro de diálogo Listo para convertir.

    Cuadro de diálogo Listo del Asistente para conversión de Visual Studio
  5. Si está abriendo el proyecto web en un equipo que no tiene instalado .NET Framework 3.5, en el cuadro de diálogo Versión de .NET Framework de destino del proyecto no instalada, seleccione Cambiar el destino del proyecto a .NET Framework 4 y haga clic en Aceptar.

    Cuadro de diálogo Versión de .NET Framework de destino del proyecto no instalada
  6. Si está abriendo el proyecto web en un equipo que tiene instalado .NET Framework 3.5, en el cuadro de diálogoSe ha encontrado un sitio web destinado a una versión anterior de .Net Framework, desactive la casilla si no desea actualizar todos los sitios o proyectos web de una solución.

    Cuadro de diálogo de selección de versión de .NET Framework
  7. En el cuadro de diálogo, haga clic en .

    Visual Studio actualiza el archivo Web.config. Los cambios que se realizan en el archivo Web.config se enumeran en el procedimiento posterior de este tema que explica cómo actualizar el archivo Web.config manualmente. Visual Studio no actualiza comentarios. Por consiguiente, después de la conversión, el archivo Web.config podría contener comentarios que hagan referencia a versiones anteriores de .NET Framework.

    Visual Studio establece automáticamente el atributo controlRenderingCompatibilityVersion del elemento pages en 3.5. Puede quitar este valor para aprovecharse de las mejoras de XHTML y accesibilidad de ASP.NET 4. Para obtener más información, vea el procedimiento posterior de este tema que explica cómo actualizar el archivo Web.config manualmente.

  8. Si está convirtiendo un proyecto, en el Asistente para conversión de Visual Studio, haga clic en Cerrar en el cuadro de diálogo Conversión completada.

    Cuadro de diálogo Cerrar del Asistente para conversión de Visual Studio
  9. Si el proyecto no es un proyecto de IIS local, asocie su aplicación de IIS a Visual Studio cuando se implemente en IIS. Para obtener más información, vea el procedimiento posterior de este tema que corresponde a la versión de IIS que está utilizando.

    Si la aplicación de IIS está asociada a .NET Framework 2.0, el sitio no funcionará. ASP.NET generará errores que indican que el atributo targetFramework es desconocido.

  10. Si el proyecto es un proyecto de IIS local y la versión de IIS es 6.0, asocie su aplicación de IIS a Visual Studio siguiendo el procedimiento posterior de este tema correspondiente a IIS 6.0. 

    Si el proyecto es un proyecto de IIS local, Visual Studio realiza esta asociación automáticamente. Asigna la aplicación al primer grupo de aplicaciones disponible para .NET Framework versión 4. Si no existe ningún grupo de aplicaciones, Visual Studio crea uno.

    NotaNota

    De forma predeterminada, la API de metabase de IIS 6.0 que Visual Studio utiliza para asignar y crear grupos de aplicaciones no está disponible en Windows Vista ni Windows 7. Para hacer que esté disponible, habilite Nivel de compatibilidad de metabase de IIS 6 en el Panel de control de Windows seleccionando Programas y características y Activar o desactivar las características de Windows. En la siguiente ilustración se muestra el cuadro de diálogo Características de Windows.

    Cuadro de diálogo Activar o desactivar características de Windows
  11. Si el proyecto incluye código que tiene acceso al objeto HttpBrowserCapabilities (en la propiedad HttpRequest.Browser), pruebe el código para asegurarse de que funciona como se espera.

    Los archivos de definición del explorador que proporcionan información al objeto HttpBrowserCapabilities se cambiaron en ASP.NET 4, y los cambios no son compatibles con versiones anteriores de ASP.NET. Si detecta un problema y prefiere no cambiar su código para incorporar los cambios de ASP.NET 4, puede copiar los archivos de definición del explorador de ASP.NET 3.5 de la carpeta Browsers de ASP.NET 3.5 de un equipo que tenga instalado ASP.NET 3.5 y pegarlos en la carpeta Browsers de ASP.NET 4. La carpeta Browsers de una versión de ASP.NET se puede encontrar en la siguiente ubicación:

    %SystemRoot%\Microsoft.NET\Framework\versionNumber\Config\Browsers

    Después de copiar los archivos de definición del explorador, debe ejecutar la herramienta aspnet_regbrowsers.exe. Para obtener más información, vea Controles de servidor web ASP.NET y funciones del explorador.

Para actualizar manualmente el archivo Web.config de una aplicación de .NET Framework 3.5 a .NET Framework 4

  1. Asegúrese de que la aplicación está diseñada actualmente para ASP.NET 3.5.

    NotaNota

    En este tema se explica cómo convertir un archivo Web.config de .NET Framework 3.5 en .NET Framework 4. Para actualizar una aplicación web que es anterior a .NET Framework 3.5, debe convertir primero la aplicación a .NET Framework 3.5. Para obtener más información, vea Convertir a ASP.NET 3.5.

  2. Abra el archivo Web.config en la carpeta raíz de la aplicación.

  3. En la sección configSections, quite el elemento sectionGroup que se denomina "system.web.extensions".

  4. En la sección system.web, en la colección compilation, quite cada elemento add que haga referencia a un ensamblado de .NET Framework.

    Los ensamblados de .NET Framework generalmente comienzan por "System.". Normalmente tienen Version=3.5.0.0 en el atributo assembly. Sin embargo, algunas entradas de ensamblado que tienen el número de versión 3.5.0.0 podrían hacer referencia a ensamblados que se instalaron como parte de versiones complementarias o a ensamblados personalizados. No las elimine. Si el archivo Web.config contiene cualquiera de estas referencias, debe investigarlas individualmente para determinar si una versión posterior está disponible y si se debe cambiar la referencia de la versión.

  5. Agregue un atributo targetFramework al elemento compilation de la sección system.web, tal como se muestra en el ejemplo siguiente:

    <compilation targetFramework="4.0">
    

    En la etiqueta de apertura de la sección pages, agregue un atributo controlRenderingCompatibility, como se muestra en el siguiente ejemplo:

    <pages controlRenderingCompatibilityVersion="3.5"/>
    

    Muchos controles de ASP.NET 4 presentan HTML que es conforme a XHTML y los estándares de accesibilidad. Sin embargo, el sitio web que está convirtiendo podría tener script de cliente o reglas CSS que no funcionen correctamente si las páginas web cambian la manera en que presentan el HTML. Si desea aprovechar las mejoras de representación de controles de ASP.NET 4, puede omitir este atributo. Para obtener más información, vea ControlRenderingCompatibilityVersion.

  6. En la sección system.codedom, de la colección compilers, quite los elementos compiler de c# y vb.

  7. Elimine todo entre las etiquetas de inicio y cierre de la sección system.webserver, pero deje las propias etiquetas.

  8. Elimine todo entre las etiquetas de inicio y cierre de la sección runtime, pero deje las propias etiquetas.

  9. Si ha personalizado el archivo Web.config, y si alguna personalización hace referencia a clases o ensamblados personalizados, asegúrese de que los ensamblados o clases son compatibles con .NET Framework versión 4.

    En el siguiente ejemplo se muestra un archivo de ejemplo Web.config de una aplicación web simple que se convirtió de .NET Framework versión 3.5 a .NET Framework versión 4.

    <?xml version="1.0"?>
    <!-- 
        Note: As an alternative to hand editing this file you can use the 
        web admin tool to configure settings for your application. Use
        the Website->Asp.Net Configuration option in Visual Studio.
        A full list of settings and comments can be found in 
        machine.config.comments usually located in 
        \Windows\Microsoft.Net\Framework\v2.x\Config 
    -->
    <configuration>
      <appSettings/>
      <connectionStrings>
        <add name="NorthwindConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\NORTHWND.MDF;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
      </connectionStrings>
      <system.web>
    <!-- 
        Set compilation debug="true" to insert debugging 
        symbols into the compiled page. Because this 
        affects performance, set this value to true only 
        during development.
    -->
      <compilation debug="true" targetFramework="4.0">
        <assemblies>
        </assemblies>
      </compilation>
    <!--
        The <authentication> section enables configuration 
        of the security authentication mode used by 
        ASP.NET to identify an incoming user. 
    -->
      <authentication mode="Windows"/>
    <!--
        The <customErrors> section enables configuration 
        of what to do if/when an unhandled error occurs 
        during the execution of a request. Specifically, 
        it enables developers to configure html error pages 
        to be displayed in place of a error stack trace.
            <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
    -->
      <pages controlRenderingCompatibilityVersion="3.5"/></system.web>
      <system.codedom>
      </system.codedom>
    <!-- 
        The system.webServer section is required for running ASP.NET AJAX under Internet
        Information Services 7.0.  It is not necessary for previous version of IIS.
    -->
      <system.webServer>
      </system.webServer>
    </configuration>
    

Para asociar una aplicación de IIS a .NET Framework 4 en IIS 7.0

  1. En Windows, inicie Inetmgr.

  2. En el recuadro Conexiones, expanda el nodo de servidor y, a continuación, haga clic en Grupos de aplicaciones.

  3. En la página Grupos de aplicaciones, seleccione el grupo de aplicaciones que tenga la aplicación que desee cambiar.

  4. En el recuadro Acciones, haga clic en Ver aplicaciones.

  5. Seleccione la aplicación cuyo grupo de aplicaciones desee cambiar y, a continuación, haga clic en Cambiar grupo de aplicaciones en el recuadro Acciones.

  6. En el cuadro de diálogo Seleccionar grupo de aplicaciones, elija un grupo de aplicaciones que esté asociado a .NET Framework versión 4 en la lista Grupo de aplicaciones y, a continuación, haga clic en Aceptar.

Para asociar una aplicación de IIS a .NET Framework 4 en IIS 6.0

Mostrar: