Implementación web de ASP.NET mediante Visual Studio: implementación en prueba

Por Tom Dykstra

En esta serie de tutoriales se muestra cómo implementar (publicar) una aplicación web ASP.NET en Azure App Service Web Apps o en un proveedor de hospedaje de terceros mediante Visual Studio 2017. Para obtener información sobre la serie de tutoriales, vea el primer tutorial de la serie.

Para obtener una versión actual de la implementación en Azure, vea Creación de una aplicación web ASP.NET Core en Azure.

Información general

En este tutorial, implementará una aplicación web ASP.NET en Internet Information Server (IIS) en el equipo local.

Por lo general, cuando se desarrolla una aplicación, se ejecuta y se prueba en Visual Studio. De manera predeterminada, los proyectos de aplicación web de Visual Studio 2017 usan IIS Express como servidor web de desarrollo. IIS Express se comporta más como la versión completa de IIS que el Servidor de desarrollo de Visual Studio (también conocido como Cassini), que Visual Studio 2017 usa de manera predeterminada. Pero ninguno de los servidores web de desarrollo funciona exactamente igual que IIS. Por tanto, una aplicación podría ejecutarse y probarse correctamente en Visual Studio, pero fallar cuando se implementa en IIS.

Puede probar de forma confiable la aplicación de dos maneras:

  1. Implemente la aplicación en IIS en el equipo de desarrollo con el mismo proceso que usará más adelante para implementarla en el entorno de producción.

    Puede configurar Visual Studio para que use IIS al ejecutar un proyecto web, pero eso no probaría el proceso de implementación. Este método valida el proceso de implementación y que la aplicación se ejecuta correctamente en IIS.

  2. Implemente la aplicación en un entorno de prueba similar al entorno de producción.

    El entorno de producción de estos tutoriales es Web Apps en Azure App Service. El entorno de prueba idóneo es una aplicación web adicional creada en el servicio de Azure. Aunque se configuraría de la misma manera que una aplicación web de producción, solo la usaría para las pruebas.

La opción 2 es la manera más confiable de realizar las pruebas. Si usa la opción 2, no es necesario usar obligatoriamente la opción 1. Pero si va a realizar la implementación en un proveedor de hospedaje de terceros, es posible que la opción 2 no sea factible o que sea costosa, por lo que en esta serie de tutoriales se muestran los dos métodos. En el tutorial Implementación en el entorno de producción se proporcionan instrucciones para la opción 2.

Para más información sobre el uso de servidores web en Visual Studio, vea Servidores web en Visual Studio para proyectos web de ASP.NET.

Aviso: Si recibe un mensaje de error o algo no funciona mientras realiza el tutorial, asegúrese de comprobar la página de solución de problemas.

Descarga del proyecto de inicio de Contoso University

Descargue e instale la solución y el proyecto de inicio de Contoso University para Visual Studio. Esta solución contiene el tutorial completado.

Descarga del proyecto de inicio

Instalación de IIS

Para realizar la implementación en IIS en el equipo de desarrollo, confirme que IIS y Web Deploy están instalados. De manera predeterminada, Visual Studio instala Web Deploy, pero IIS no se incluye en la configuración predeterminada de Windows 10, Windows 8 o Windows 7. Si ya ha instalado IIS y el grupo de aplicaciones predeterminado ya está establecido en .NET 4, vaya a la sección siguiente.

  1. Se recomienda usar el Instalador de plataforma web (WPI) para instalar IIS y Web Deploy. WPI instala una configuración de IIS recomendada que incluye requisitos previos de IIS y Web Deploy si es necesario.

    Si ya ha instalado IIS, Web Deploy o cualquiera de sus componentes obligatorios, WPI instala solo lo que falta.

    • Use el Instalador de plataforma web para instalar IIS y Web Deploy:

      Install IIS using WPI

      Install Web Deploy using WPI

      Verá mensajes que indican que se instalará IIS 7. El vínculo funciona para IIS 8 en Windows 8; pero para Windows 8 y versiones posteriores, siga estos pasos para asegurarse de que ASP.NET 4.7 esté instalado:

    • Abra Panel de control>Programas>Programas y características>Activar o desactivar las características de Windows.

    • Expanda Internet Information Services, Servicios World Wide Web y Características de desarrollo de aplicaciones.

    • Confirme que ASP.NET 4.7 está seleccionado.

      Select ASP.NET 4.7

    • Confirme que Servicios World Wide Web y Consola de administración de IIS está seleccionado. Esto instala IIS y el Administrador de IIS.

      Select World Wide Web Services

    • Seleccione Aceptar. Aparecen mensajes de cuadro de diálogo que indican que se está llevando a cabo la instalación.

Después de instalar IIS, ejecute el Administrador de IIS para asegurarse de que la versión 4 de .NET Framework está asignada al grupo de aplicaciones predeterminado.

  1. Presione WINDOWS+R para abrir el cuadro de diálogo Ejecutar.

    (En Windows 8 o versiones posteriores, escriba "ejecutar" en la página Inicio. En Windows 7, seleccione Ejecutar en el menú Inicio. Si Ejecutar no aparece en el menú Inicio, haga clic con el botón derecho en la barra de tareas, seleccione Propiedades, seleccione la pestaña Menú Inicio, después Personalizary luego Comando Ejecutar).

  2. Escriba "inetmgr" y seleccione Aceptar.

  3. En el panel Conexiones, expanda el nodo del servidor y seleccione Grupo de aplicaciones. En el panel Grupos de aplicaciones, si DefaultAppPool está asignado a la versión 4 de .NET Framework como en la ilustración siguiente, vaya a la sección siguiente.

    Inetmgr_showing_4.0_app_pools

  4. Si solo ve dos grupos de aplicaciones y ambos se establecen en .NET Framework 2.0, instale ASP.NET 4 en IIS.

    Para Windows 8 o versiones posteriores, vea las instrucciones de la sección anterior para asegurarse de que ASP.NET 4.7 está instalado o vea Procedimiento para instalar ASP.NET 4.5 en Windows 8 y Windows Server 2012. Para Windows 7, abra una ventana del símbolo del sistema; para ello, haga clic con el botón derecho en Símbolo del sistema en el menú Inicio de Windows y seleccione Ejecutar como Administrador. Ejecute aspnet_regiis.exe para instalar ASP.NET 4 en IIS mediante los siguientes comandos. (En sistemas de 32 bits, reemplace "Framework64" por "Framework").

    cd %windir%\Microsoft.NET\Framework64\v4.0.30319
    aspnet_regiis.exe –i
    

    Este comando crea grupos de aplicaciones para .NET Framework 4, pero el grupo de aplicaciones predeterminado permanecerá establecido en 2.0. Va a implementar una aplicación destinada a .NET 4 en ese grupo de aplicaciones, por lo que debe cambiar el grupo de aplicaciones a .NET 4.

  5. Si ha cerrado el Administrador de IIS, ejecútelo de nuevo, expanda el nodo del servidor y seleccione Grupos de aplicaciones.

  6. En el panel Grupos de aplicaciones, seleccione DefaultAppPool. En el panel Acciones, seleccione Configuración básica.

    Inetmgr_selecting_Basic_Settings_for_app_pool

  7. En el cuadro de diálogo Editar grupo de aplicaciones, cambie la versión de .NET CLR a .NET CLR v4.0.30319. Seleccione Aceptar.

    Selecting_.NET_4_for_DefaultAppPool

Ya está listo para publicar una aplicación web en IIS. Pero en primer lugar debe crear bases de datos para las pruebas.

Instalación de SQL Server Express

LocalDB no está diseñado para funcionar en IIS, por lo que el entorno de prueba debe tener instalado SQL Server Express. Si usa Visual Studio 2010, SQL Server Express ya está instalado de forma predeterminada. Si usa Visual Studio 2012 o posterior, instale SQL Server Express.

Para instalar SQL Server Express, descargue e instálelo desde el Centro de descarga: Microsoft SQL Server 2017 Express Edition.

En la primera página del Centro de instalación de SQL Server, seleccione Nueva instalación independiente de SQL Server o agregar características a una instalación existente y siga las instrucciones para aceptar las opciones predeterminadas. En el Asistente para la instalación, acepte la configuración predeterminada. Para más información sobre las opciones de instalación, vea Instalación de SQL Server desde el Asistente para la instalación (programa de instalación).

Creación de bases de datos de SQL Server Express para el entorno de prueba

La aplicación Contoso University tiene dos bases de datos:

  1. Base de datos de pertenencia
  2. Base de datos de aplicación

Puede implementarlas en dos bases de datos independientes o en una base de datos única. Combinarlas facilita la combinación de bases de datos entre ellas.

Si va a realizar la implementación en un proveedor de hospedaje de terceros, es posible que el plan de hospedaje también le proporcione una razón para combinarlas. Por ejemplo, es posible que el proveedor cobre más por varias bases de datos, o incluso que no permita más de una base de datos.

En este tutorial, realizará la implementación en dos bases de datos en el entorno de prueba y en una base de datos en los entornos de ensayo y producción.

En el menú Ver de Visual Studio, seleccione Explorador de servidores (Explorador de bases de datos en Visual Web Developer). Haga clic con el botón derecho en Conexiones de datos y seleccione Crear nueva base de datos SQL Server.

Selecting_Create_New_SQL_Server_Database

En el cuadro de diálogo Crear nueva base de datos de SQL Server, escriba ".\SQLExpress" en el cuadro Nombre del servidor y "aspnet-ContosoUniversity" en el cuadro Nuevo nombre de base de datos. Seleccione Aceptar.

Create aspnet-ContosoUniversity

Siga el mismo procedimiento para crear nueva base de datos de SQL Server Express School denominada ContosoUniversity.

En el Explorador de servidores se muestran las dos bases de datos nuevas.

New databases in Server Explorer

Creación de un script de concesión para las nuevas bases de datos

Cuando la aplicación se ejecuta en IIS en el equipo de desarrollo, usa las credenciales del grupo de aplicaciones predeterminado para acceder a la base de datos. Pero, de manera predeterminada, el grupo de aplicaciones no tiene permiso para abrir las bases de datos. Esto significa que debe ejecutar un script para conceder ese permiso. En esta sección, creará ese script y lo ejecutará más adelante para asegurarse de que la aplicación puede abrir las bases de datos cuando se ejecute en IIS.

En un editor de texto, copie los siguientes comandos de SQL en un nuevo archivo y guárdelo como Grant.sql.

IF NOT EXISTS (SELECT name FROM sys.server_principals WHERE name = 'IIS APPPOOL\DefaultAppPool')
BEGIN
    CREATE LOGIN [IIS APPPOOL\DefaultAppPool] 
      FROM WINDOWS WITH DEFAULT_DATABASE=[master], 
      DEFAULT_LANGUAGE=[us_english]
END
GO
CREATE USER [ContosoUniversityUser] 
  FOR LOGIN [IIS APPPOOL\DefaultAppPool]
GO
EXEC sp_addrolemember 'db_owner', 'ContosoUniversityUser'
GO

En Visual Studio, abra la solución Contoso University. Haga clic con el botón derecho en la solución (no en uno de los proyectos) y seleccione Agregar. Seleccione Elemento existente, vaya a Grant.sql y ábralo.

Nota:

Este script está diseñado para funcionar con SQL Server Express 2012 o versiones posteriores, y con los valores de IIS en Windows 10, Windows 8 o Windows 7 como se especifican en este tutorial. Si usa otra versión de SQL Server o Windows, o bien si configura IIS en el equipo de forma diferente, es posible que se necesiten cambios en este script. Para más información sobre los scripts de SQL Server, vea Libros en pantalla de SQL Server.

Nota:

Nota de seguridad Este script concede permisos db_owner al usuario que accede a la base de datos en tiempo de ejecución, que es lo que tendrá en el entorno de producción. En algunos escenarios, es posible que quiera especificar un usuario que tenga permisos completos de actualización del esquema de base de datos solo para la implementación y especificar para el tiempo de ejecución otro usuario que solo tenga permisos para leer y escribir datos. Para más información, vea Revisión de los cambios automáticos de Web.config para Migraciones de Code First más adelante en este tutorial.

Ejecución del script de concesión en la base de datos de la aplicación

Puede configurar el perfil de publicación para ejecutar el script de concesión en la base de datos de pertenencia durante la implementación porque esa implementación de base de datos usa el proveedor dbDacFx. No puede ejecutar scripts durante la implementación de Migraciones de Code First, que es cómo va a implementar la base de datos de la aplicación. Esto significa que tiene que ejecutar manualmente el script antes de la implementación en la base de datos de la aplicación.

  1. En Visual Studio, abra el archivo Grant.sql que ha creado antes.

  2. Seleccione Conectar.

    Connect button

  3. En el cuadro de diálogo Conectarse al servidor, escriba .\SQLExpress como Nombre del servidor. Seleccione Conectar.

  4. En la lista desplegable de bases de datos, seleccione ContosoUniversity. Seleccione Execute(Ejecutar).

    In the database drop-down list select ContosoUniversity. Select Execute.

La identidad predeterminada del grupo de aplicaciones ahora tiene permisos suficientes en la base de datos de la aplicación para que Migraciones de Code First cree las tablas de base de datos cuando se ejecuta la aplicación.

Publicación en IIS

Hay varias maneras de realizar la implementación en IIS mediante Visual Studio y Web Deploy:

  • Usar Publicación con un solo clic en Visual Studio.
  • Publicar desde la línea de comandos.
  • Crear un paquete de implementación e instalarlo mediante el Administrador de IIS. El paquete tiene un archivo ZIP con todos los archivos y metadatos necesarios para instalar un sitio en IIS.
  • Crear un paquete de implementación e instalarlo mediante la línea de comandos.

El proceso que ha pasado en los tutoriales anteriores para configurar Visual Studio a fin de automatizar las tareas de implementación se aplica a todos estos métodos. En estos tutoriales, usará los dos primeros métodos. Para obtener información sobre el uso de paquetes de implementación, vea Implementación de una aplicación web mediante la creación e instalación de un paquete de implementación web en el Mapa de contenido de implementación web para Visual Studio y ASP.NET.

Antes de la publicación, asegúrese de que ejecuta Visual Studio en modo de administrador. Si no ve (Administrador) en la barra de título, cierre Visual Studio. En la página Inicio de Windows 8 (o versiones posteriores), o en el menú Inicio de Windows 7, haga clic con el botón derecho en el icono de Visual Studio y seleccione Ejecutar como administrador. El modo de administrador solo es necesario para la publicación cuando se publica en IIS en el equipo local.

Creación del perfil de publicación

  1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto ContosoUniversity (no en el proyecto ContosoUniversity.DAL). Seleccione Publicar. Se muestra la página Publicar.

  2. Seleccione Nuevo perfil. Se abre el cuadro de diálogo Elegir un destino de publicación.

  3. Seleccione IIS, FTP, etc.. Seleccione Crear perfil. Aparece el Asistente para publicación.

    Publish Web wizard Profile tab

  4. En el menú desplegable Método de publicación, seleccione Web Deploy.

  5. En Servidor, escriba localhost.

  6. Para Nombre del sitio, escriba Sitio web predeterminado/ContosoUniversity.

  7. En Dirección URL de destino, escriba http://localhost/ContosoUniversity.

    El valor Dirección URL de destino no es obligatorio. Cuando Visual Studio termina de implementar la aplicación, se abre automáticamente el explorador predeterminado en esta dirección URL. Si no quiere que el explorador se abra automáticamente después de la implementación, deje este cuadro en blanco.

  8. Seleccione Validar conexión para comprobar que la configuración es correcta y se puede conectar a IIS en el equipo local.

    Una marca de verificación verde indica que la conexión se ha realizado correctamente.

    Publish Web wizard Connection tab

  9. Seleccione Siguiente para avanzar a la pestaña Configuración.

  10. El cuadro desplegable Configuración especifica la configuración de compilación que se va a implementar. Déjelo establecido en el valor predeterminado de Versión. En este tutorial no va a implementar compilaciones de depuración.

  11. Expanda Opciones de publicación de archivos. Seleccione Excluir archivos de la carpeta App_Data.

    En el entorno de prueba, la aplicación accede a las bases de datos que ha creado en la instancia local de SQL Server Express, no a los archivos .mdf de la carpeta App_Data.

  12. Deje desactivadas las casillas Precompilar durante la publicación y Quitar archivos adicionales en el destino.

    File Publish Options in Settings tab

    La precompilación es una opción que es útil principalmente para sitios grandes. Puede reducir el tiempo de inicio la primera vez que se solicita una página después de publicar el sitio.

    No es necesario quitar archivos adicionales, ya que esta es la primera implementación y aún no habrá ningún archivo en la carpeta de destino.

    Nota:

    Si selecciona Quitar archivos adicionales en el destino de una implementación posterior en el mismo sitio, asegúrese de usar la característica de vista previa para que vea con antelación qué archivos se eliminarán antes de la implementación. El comportamiento esperado es que Web Deploy eliminará archivos en el servidor de destino que haya eliminado en el proyecto. Pero se compara toda la estructura de carpetas bajo las carpetas de origen y destino; y en algunos escenarios, Web Deploy podría eliminar archivos que no quiere eliminar.

    Por ejemplo, si tiene una aplicación web en una subcarpeta en el servidor al implementar un proyecto en la carpeta raíz, la subcarpeta se eliminará. Es posible que tenga un proyecto para el sitio principal en contoso.com y otro proyecto para un blog en contoso.com/blog. La aplicación de blog está en una subcarpeta. Si selecciona Quitar archivos adicionales en el destino al implementar el sitio principal, se eliminará la aplicación de blog.

    En otro ejemplo, la carpeta App_Data podría eliminarse inesperadamente. Algunas bases de datos, como los archivos de base de datos del almacén de SQL Server Compact, se almacenan en la carpeta App_Data. Después de la implementación inicial, no quiere seguir copiando los archivos de base de datos en implementaciones posteriores, por lo que selecciona Excluir App_Data en la pestaña Empaquetar/publicar web. Después de hacerlo, si ha seleccionado Quitar archivos adicionales en el destino, los archivos de base de datos y la carpeta App_Data se eliminarán la próxima vez que publique.

Configuración de la implementación para la base de datos de pertenencia

Los pasos siguientes se aplican a la base de datos DefaultConnection de la sección Bases de datos del cuadro de diálogo.

  1. En el cuadro Cadena de conexión remota, escriba la siguiente cadena de conexión que apunta a la nueva base de datos de pertenencia de SQL Server Express.

    Data Source=.\SQLExpress;Initial Catalog=aspnet-ContosoUniversity;Integrated Security=True
    

    El proceso de implementación coloca este cadena de conexión en el archivo Web.config implementado porque se ha seleccionado Usar este cadena de conexión en tiempo de ejecución.

    También puede obtener la cadena de conexión desde el Explorador de servidores. En el Explorador de servidores, expanda Conexiones de datos y seleccione la base de datos <nombre_de_la_máquina>\sqlexpress.aspnet-ContosoUniversity; después, en la ventana Propiedades, copie el valor de Cadena de conexión. Esa cadena de conexión tendrá un valor adicional que puede eliminar: Pooling=False.

  2. Seleccione Actualizar base de datos.

    Esto hace que el esquema de la base de datos se cree en la base de datos de destino durante la implementación. En los pasos siguientes, especifique los scripts adicionales que debe ejecutar: uno para conceder acceso de base de datos al grupo de aplicaciones predeterminado y otro para implementar datos.

  3. Seleccione Configurar actualizaciones de base de datos.

  4. En el cuadro de diálogo Configurar actualizaciones de base de datos, seleccione Agregar script SQL. Vaya al script Grant.sql que ha guardado antes en la carpeta de la solución.

  5. Repita el proceso para agregar el script aspnet-data-dev.sql.

    Configure Database Updates for membership database

  6. Seleccione Close (Cerrar).

Configuración de la implementación para la base de datos de la aplicación

Cuando Visual Studio detecta una claseDbContext de Entity Framework, crea una entrada en la sección Bases de datos que tiene una casilla Ejecutar Migraciones de Code First en lugar de una casilla Actualizar base de datos. En este tutorial, usará esa casilla para especificar la implementación de Migraciones de Code First.

En algunos escenarios, podría usar una base de datos DbContext, pero quiere utilizar el proveedor dbDacFx en lugar de Migraciones para implementar la base de datos. En ese caso, vea ¿Cómo se implementa una base de datos de Code First sin Migraciones? en las preguntas más frecuentes sobre la implementación web de ASP.NET en MSDN.

Los pasos siguientes se aplican a la base de datos SchoolContext de la sección Bases de datos del cuadro de diálogo.

  1. En el cuadro Cadena de conexión remota, escriba la siguiente cadena de conexión que apunta a la nueva base de datos de la aplicación de SQL Server Express.

    Data Source=.\SQLExpress;Initial Catalog=ContosoUniversity;Integrated Security=True
    

    El proceso de implementación coloca este cadena de conexión en el archivo Web.config implementado porque se ha seleccionado Usar este cadena de conexión en tiempo de ejecución.

    También puede obtener la cadena de conexión de la base de datos de la aplicación desde el Explorador de servidores de la misma manera que ha obtenido la cadena de conexión de la base de datos de pertenencia.

  2. Seleccione Ejecutar Migraciones de Code First (se ejecuta al iniciarse la aplicación).

    Esta opción hace que el proceso de implementación configure el archivo Web.config implementado para especificar el inicializador MigrateDatabaseToLatestVersion. Este inicializador actualiza automáticamente la base de datos a la versión más reciente cuando la aplicación accede a la base de datos por primera vez después de la implementación.

Configuración de transformaciones de perfil de publicación

  1. Seleccione Close (Cerrar). Seleccione cuando se le pregunte si quiere guardar los cambios.

  2. En el Explorador de soluciones, expanda Propiedades y después PublishProfiles.

  3. Haga clic con el botón derecho en CustomProfile.pubxml y cambie el nombre a Test.pubxml.

  4. Haga clic con el botón derecho en Test.pubxml. Seleccione Agregar transformación de configuración.

    Add Config Transform menu

    Visual Studio crea el archivo de transformación Web.Test.config y lo abre.

  5. En el archivo de transformación Web.Test.config, inserte el código siguiente inmediatamente después de la etiqueta de configuración de apertura.

    <appSettings>
        <add key="Environment" value="Test" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
    </appSettings>
    

    Cuando se usa el perfil de publicación de prueba, esta transformación establece el indicador de entorno en "Prueba". En el sitio implementado, verá "(Prueba)" después del título H1 "Contoso University".

  6. Guarde y cierre el archivo.

  7. Haga clic con el botón derecho en el archivo Web.Test.config y seleccione Vista previa de la transformación para asegurarse de que la transformación codificada genera los cambios esperados.

    En la ventana Vista previa de Web.config se muestra el resultado de aplicar las transformaciones Web.Release.config y Web.Test.config.

Vista previa de las actualizaciones de implementación

  1. Vuelva a abrir el Asistente para publicar web (haga clic con el botón derecho en el proyecto ContosoUniversity, seleccione Publicar y, después, Vista previa).

  2. En el cuadro de diálogo Vista previa, seleccione Iniciar vista previa para ver una lista de los archivos que se copiarán.

    Publish Preview

    También puede seleccionar el vínculo Vista previa de la base de datos para ver los scripts que se ejecutarán en la base de datos de pertenencia. (No se ejecutan scripts para la implementación de Migraciones de Code First, por lo que no se obtiene ninguna vista previa para la base de datos de la aplicación).

  3. Seleccione Publicar.

    Si Visual Studio no está en modo de administrador, es posible que reciba un mensaje de error de permisos. En ese caso, cierre Visual Studio, ábralo en modo de administrador e intente de nuevo la publicación.

    Si Visual Studio está en modo de administrador, en la ventana Salida se notifican la compilación y publicación correctas.

    Output_window_publish_Test

    Si ha escrito la dirección URL en el cuadro Dirección URL de destino de la pestaña Conexión del perfil de publicación, el explorador se abre automáticamente en la página principal de Contoso University que se ejecuta en IIS en el equipo.

Prueba en el entorno de prueba

Observe que el indicador de entorno muestra "(Prueba)" en lugar de "(Dev)", lo que indica que la transformación de Web.config para el indicador de entorno se ha realizado correctamente.

Ejecute la página Instructors para comprobar que Code First ha inicializado la base de datos con datos de instructor. Al seleccionar esta página, puede tardar unos minutos en cargarse porque Code First crea la base de datos y, después, ejecuta el método Seed. (No lo ha hecho cuando estaba en la página principal porque la aplicación aún no había intentado acceder a la base de datos).

Seleccione la pestaña Students para comprobar que la base de datos implementada no tiene alumnos.

Seleccione Agregar alumnos en el menú Alumnos. Agregue un alumno y, después, vea el nuevo alumno en la página Alumnos. Esto verifica que puede escribir correctamente en la base de datos.

En el menú Cursos, seleccione Actualizar créditos. En la página Actualizar créditos se necesitan permisos de administrador, por lo que se muestra la página Iniciar sesión. Escriba las credenciales de la cuenta de administrador que ha creado antes ("admin" y "devpwd"). Se mostrará la página Actualizar créditos. Esto comprueba que la cuenta de administrador que ha creado en el tutorial anterior se ha implementado correctamente en el entorno de prueba.

Compruebe que existe una carpeta ELMAH en la carpeta c:\inetpub\wwwroot\ContosoUniversity con solo el archivo de marcador de posición.

Revisión de los cambios automáticos de Web.config para Migraciones de Code First

Abra el archivo Web.config en la aplicación implementada en C:\inetpub\wwwroot\ContosoUniversity; puede ver dónde ha configurado el proceso de implementación Migraciones de Code First para actualizar automáticamente la base de datos a la versión más reciente.

Open the Web.config file in the deployed application at C:\inetpub\wwwroot\ContosoUniversity and see where the deployment process configured Code First Migrations to automatically update the database to the latest version.

El proceso de implementación también ha creado una cadena de conexión que Migraciones de Code First usará exclusivamente para actualizar el esquema de la base de datos:

Database_Publish connection string

Esta cadena de conexión adicional le permite especificar una cuenta de usuario para las actualizaciones del esquema de base de datos y otra cuenta de usuario para el acceso a datos de la aplicación. Por ejemplo, puede asignar el rol db_owner a Migraciones de Code First y db_datareader con roles b_datawriter a la aplicación. Se trata de un patrón común de defensa en profundidad que impide que código potencialmente malintencionado de la aplicación cambie el esquema de la base de datos. (Por ejemplo, esto podría ocurrir en un ataque por inyección de código SQL exitosos). En estos tutoriales no se usa este patrón. Para implementar este patrón en el escenario, siga estos pasos:

  1. En el Asistente para publicar web en la pestaña Configuración, escriba la cadena de conexión que especifica un usuario con permisos completos de actualización del esquema de base de datos. Desactive la casilla Usar esta cadena de conexión en tiempo de ejecución. En el archivo Web.config implementado, se convierte en la cadena de conexión DatabasePublish.

  2. Cree una transformación de archivo Web.config para la cadena de conexión que quiera que la aplicación use en tiempo de ejecución.

Resumen

Ahora ha implementado la aplicación en IIS en el equipo de desarrollo y la ha probado allí.

Home page in Test

Esto verifica que el proceso de implementación ha copiado el contenido de la aplicación en la ubicación correcta (excepto los archivos que no quería implementar) y que Web Deploy ha configurado IIS correctamente durante la implementación. En el siguiente tutorial, ejecutará una prueba más que busca una tarea de implementación que aún no se ha realizado: establecer permisos de carpeta en la carpeta ELMAH.

Información adicional

Para obtener información sobre cómo ejecutar IIS o IIS Express en Visual Studio, vea los siguientes recursos: