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

Por Tom Dykstra

Descarga del proyecto de inicio

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 2012 o Visual Studio 2010. Para obtener información sobre la serie de tutoriales, vea el primer tutorial de la serie.

Información general

En este tutorial, configurará una cuenta de Microsoft Azure, creará entornos de almacenamiento provisional y producción, e implementará la aplicación web ASP.NET en esos mediante la característica de publicación con un solo clic de Visual Studio.

Si lo prefiere, puede realizar la implementación en un proveedor de hospedaje de terceros. La mayoría de los procedimientos descritos en este tutorial son los mismos para un proveedor de hospedaje o para Azure, excepto que cada proveedor tiene su propia interfaz de usuario para la administración de cuentas y sitios web. Puede encontrar un proveedor de hospedaje en la galería de proveedores en el sitio web de Microsoft.com.

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

Obtención de una cuenta de Microsoft Azure

Si todavía no tiene una cuenta de Azure, puede crear una cuenta de evaluación gratuita en un par de minutos. Para obtener más información, consulte Evaluación gratuita de Azure.

Creación de un entorno de ensayo

Nota:

Desde que se ha escrito este tutorial, en Azure App Service se ha agregado una nueva característica para automatizar muchos de los procesos para crear entornos de ensayo y producción. Vea Configuración de entornos de ensayo para aplicaciones web en Azure App Service.

Como se ha explicado en el tutorial Implementación en el entorno de prueba, el entorno de prueba más confiable es un sitio web en el proveedor de hospedaje que coincida con el sitio web de producción. En muchos proveedores de hospedaje tendría que ponderar las ventajas de esto con un costo adicional significativo, pero en Azure puede crear una aplicación web gratuita adicional como aplicación de almacenamiento provisional. También necesita una base de datos y el gasto adicional para ello con respecto al gasto de la base de datos de producción será ninguno o mínimo. En Azure, paga por la cantidad de almacenamiento de base de datos que usa en lugar de por cada base de datos, y la cantidad de almacenamiento adicional que usará en el almacenamiento provisional será mínima.

Como se ha explicado en el tutorial Implementación en el entorno de prueba, en almacenamiento provisional y producción, va a implementar las dos bases de datos en una. Si quisiera mantenerlas separadas, el proceso sería el mismo, excepto que crearía una base de datos adicional para cada entorno y seleccionaría la cadena de destino correcta para cada base de datos al crear el perfil de publicación.

En esta sección del tutorial creará una aplicación web y una base de datos que se usará para el entorno de ensayo y la implementará en el almacenamiento provisional y probará allí antes de crear e implementar en el entorno de producción.

Nota:

En los pasos siguientes se muestra cómo crear una aplicación web en Azure App Service mediante el Portal de administración de Azure. En la versión más reciente del SDK de Azure, también puede hacerlo sin salir de Visual Studio mediante el Explorador de servidores. En Visual Studio 2013, también puede crear una aplicación web directamente desde el cuadro de diálogo Publicar. Para más información, vea Creación de una aplicación web ASP.NET en Azure App Service.

  1. En el Portal de administración de Azure, haga clic en Sitios web y después en Nuevo.

  2. Haga clic en Sitio web y después en Crear personalizado.

    Se abre el asistente Nuevo sitio web- Crear personalizado. El asistente para crear personalizado le permite crear un sitio web y una base de datos al mismo tiempo.

  3. En el paso Crear sitio web del asistente, escriba una cadena en el cuadro URL que se usará como dirección URL única para el entorno de ensayo de la aplicación. Por ejemplo, escriba ContosoUniversity-staging123 (incluidos los números aleatorios al final para que sea único en caso de que ContosoUniversity-staging ya se haya seleccionado).

    La URL completa consistirá en el valor que escriba más el sufijo que aparece junto al cuadro de texto.

  4. En la lista desplegable Región, elija la región más cercana.

    Este valor especifica en qué centro de datos se ejecutará la aplicación web.

  5. En la lista desplegable Base de datos, elija Crear una nueva base de datos SQL.

  6. En el cuadro Nombre de cadena de conexión de base de datos, deje el valor predeterminado DefaultConnection.

  7. Haga clic en la flecha que apunta a la derecha en la parte inferior del cuadro.

    En la ilustración siguiente se muestra el cuadro de diálogo Crear sitio web con valores de ejemplo. La URL y la región especificadas serán diferentes.

    Create Website step

    El asistente avanza hasta el paso Especificación de la configuración de la base de datos .

  8. En el cuadro Nombre, escriba ContosoUniversity más un número aleatorio para que sea único, por ejemplo ContosoUniversity123.

  9. En el cuadro Servidor, seleccione Nuevo servidor de SQL Database.

  10. Escriba un nombre de usuario y una contraseña de administrador.

    Aquí no debe escribir un nombre y una contraseña existentes. Escribirá un nombre y una contraseña nuevos que definirá ahora para usarlos más adelante cuando acceda a la base de datos.

  11. En el cuadro Región, elija la misma región que haya elegido para la aplicación web.

    Mantener el servidor web y el servidor de bases de datos en la misma región le ofrece el mejor rendimiento y minimiza los gastos.

  12. Haga clic en la marca de verificación situada en la parte inferior de la casilla para indicar que ha terminado.

    En la ilustración siguiente se muestra el cuadro de diálogo Especificar configuración de la base de datos con valores de ejemplo. Los valores que haya escrito pueden ser diferentes.

    Database Settings step of New Website - Create with Database wizard

    El Portal de administración vuelve a la página Sitios web y en la columna Estado se muestra que se va a crear la aplicación web. Después de un tiempo (normalmente menos de un minuto), en la columna Estado se muestra que la aplicación web se ha creado correctamente. En la barra de navegación de la izquierda, el número de aplicaciones web que tiene en la cuenta aparece junto al icono Sitios web y el número de bases de datos aparece junto al icono Bases de datos SQL.

    Web Sites page of Management Portal, web site created

    El nombre de la aplicación web será diferente del de la aplicación de ejemplo en la ilustración.

Implementación de la aplicación en el almacenamiento provisional

Ahora que ha creado una aplicación web y una base de datos para el entorno de ensayo, puede implementar el proyecto en él.

Nota:

En estas instrucciones se muestra cómo crear un perfil de publicación mediante la descargan de un archivo .publishsettings, que funciona no solo para Azure, sino también para proveedores de hospedaje de terceros. El SDK de Azure más reciente también le permite conectarse directamente a Azure desde Visual Studio y elegir entre una lista de aplicaciones web que tiene en la cuenta de Azure. En Visual Studio 2013, puede iniciar sesión en Azure desde el cuadro de diálogo Publicación web o desde la ventana Explorador de servidores. Para más información, vea Creación de una aplicación web ASP.NET en Azure App Service.

Descarga del archivo .publishsettings

  1. Haga clic en el nombre de la aplicación web que acaba de crear.

    Click the site to go to the Dashboard

  2. En Vista rápida en la pestaña Panel, haga clic en Descargar perfil de publicación.

    Download Publishing Profile link

    Este paso descarga un archivo que contiene toda la configuración que necesita para implementar una aplicación en la aplicación web. Importará este archivo en Visual Studio para que no tenga que escribir esta información manualmente.

  3. Guarde el archivo .publishsettings en una carpeta a la que pueda acceder desde Visual Studio.

    saving the .publishsettings file

    Advertencia

    Seguridad: El archivo .publishsettingscontiene las credenciales (sin codificar) que se usan para administrar los servicios y suscripciones de Azure. El procedimiento recomendado para este archivo consiste en almacenarlo temporalmente fuera de los directorios de origen (por ejemplo en la carpeta Bibliotecas\Documentos) y, a continuación, eliminarlo cuando la importación se haya completado. Un usuario malintencionado que consiga acceso al archivo .publishsettings puede editar, crear y eliminar los servicios de Azure.

Creación de un perfil de publicación

  1. En Visual Studio, haga clic con el botón derecho en el proyecto ContosoUniversity en el Explorador de soluciones y seleccione Publicar en el menú contextual.

    Se abre el asistente para publicación web .

  2. Haga clic en la pestaña Perfil.

  3. Haga clic en Import.

  4. Vaya al archivo .publishsettings que ha descargado antes y, después, haga clic en Abrir.

    Import Publish Settings dialog box

  5. En la pestaña Conexión, haga clic en Validar conexión para asegurarse de que la configuración es correcta.

    Cuando se haya validado la conexión, se muestra una marca de verificación verde junto al botón Validar conexión.

    En algunos proveedores de hospedaje, al hacer clic en Validar conexión, es posible que vea un cuadro de diálogo Error de certificado. En ese caso, compruebe que el nombre del servidor es el esperado. Si el nombre del servidor es correcto, seleccione Guardar este certificado para futuras sesiones de Visual Studio y haga clic en Aceptar. (Este error significa que el proveedor de hospedaje ha elegido evitar el gasto de comprar un certificado SSL para la dirección URL en la que se va a realizar la implementación. Si prefiere establecer una conexión segura mediante un certificado válido, póngase en contacto con el proveedor de hospedaje).

  6. Haga clic en Next.

    connection successful icon and Next button in Connection tab

  7. En la pestaña Configuración, expanda Opciones de publicación de archivos y, después, seleccione Excluir archivos de la carpeta App_Data.

    Para obtener información sobre las otras opciones en Opciones de publicación de archivos, vea el tutorial sobre la implementación en IIS. La captura de pantalla en la que se muestra el resultado de este y los siguientes pasos de configuración de base de datos está al final de los pasos de configuración de la base de datos.

  8. En DefaultConnection en la sección Bases de datos, configure la implementación de la base de datos para la base de datos de pertenencia.

    1. Seleccione Actualizar base de datos.

      El cuadro Cadena de conexión remota situado directamente debajo de DefaultConnection se rellena con la cadena de conexión del archivo .publishsettings. La cadena de conexión incluye credenciales de SQL Server, que se almacenan en texto sin formato en el archivo .pubxml. Si prefiere no almacenarlas permanentemente allí, puede quitarlas del perfil de publicación después de implementar la base de datos y, en su lugar, almacenarlas en Azure. Para más información, vea Procedimiento para proteger las cadenas de conexión de base de datos de ASP.NET al implementar en Azure desde código fuente en el blog de Scott Hanselman. 2. Haga clic en Configurar actualizaciones de base de datos. 3. En el cuadro de diálogo Configurar actualizaciones de base de datos, haga clic en Agregar script SQL. 4. En el cuadro Agregar script SQL, vaya al script aspnet-data-prod.sql que ha guardado anteriormente en la carpeta de la solución y, después, haga clic en Abrir. 5. Cierre el cuadro de diálogo de Configurar actualizaciones de bases de datos.

  9. En SchoolContext en la sección Bases de datos, seleccione Ejecutar Migraciones de Code First (se ejecuta en el inicio de la aplicación).

    Visual Studio muestra Ejecutar Migraciones de Code First en lugar de Actualizar base de datos para las clases DbContext. Si quiere usar el proveedor dbDacFx en lugar de Migraciones para implementar una base de datos a la que accede mediante una clase DbContext, Vea Procedimiento para implementar una base de datos de Code First sin migraciones en las preguntas más frecuentes sobre implementación web para Visual Studio y ASP.NET en MSDN.

    Ahora la pestaña Configuración es similar a la del ejemplo siguiente:

    Settings tab for staging

  10. Siga estos pasos para guardar el perfil y cambiar su nombre a Ensayo:

    1. Haga clic en la pestaña Perfil y después en Administrar perfiles.

    2. La importación ha creado dos perfiles, uno para FTP y otro para Web Deploy. Ha configurado el perfil de Web Deploy: cambie el nombre de este perfil a Ensayo.

      Rename profile to Staging

    3. Cierre el cuadro de diálogo Editar perfiles de publicación web.

    4. Cierre el Asistente para publicación web.

Configuración de una transformación de perfil de publicación para el indicador de entorno

Nota:

En esta sección se muestra cómo configurar una transformación de Web.config para el indicador de entorno. Como el indicador está en el elemento <appSettings>, tiene otra alternativa para especificar la transformación al realizar la implementación en Azure App Service. Para más información, vea Especificación de la configuración de Web.config en Azure.

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

  2. Haga clic con el botón derecho en Staging.pubxml y, después, haga clic en Agregar transformación de configuración.

    Add Config Transform for staging

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

  3. En el archivo de transformación Web.Staging.config, inserte el código siguiente inmediatamente después de la etiqueta configuration de apertura.

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

    Cuando se usa el perfil de publicación de almacenamiento provisional, esta transformación establece el indicador de entorno en "Prod". En la aplicación web implementada, no verá ningún sufijo como "(Dev)" o "(Test)" después del título H1 "Contoso University".

  4. Haga clic con el botón derecho en el archivo Web.Staging.config y haga clic en 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.Staging.config.

Impedir el uso público de la aplicación de prueba

Una consideración importante para la aplicación de almacenamiento provisional es que estará activa en Internet, pero no quiere que el público la use. Para minimizar la probabilidad de que los usuarios la encuentren y la utilicen, puede usar uno o varios de los métodos siguientes:

  • Establezca reglas de firewall que permitan el acceso a la aplicación de almacenamiento provisional solo desde direcciones IP que use para probar el almacenamiento provisional.
  • Use una dirección URL ofuscada que sea imposible de adivinar.
  • Cree un archivo robots.txt para asegurarse de que los motores de búsqueda no rastreen la aplicación de prueba ni notifiquen vínculos a ella en los resultados de la búsqueda.

El primero de estos métodos es el más eficaz, pero no se trata en este tutorial porque sería necesario implementar un servicio en la nube de Azure en lugar de Azure App Service. Para más información sobre los servicios en la nube y las restricciones de IP en Azure, vea Opciones de hospedaje de proceso proporcionadas por Azure y Bloqueo del acceso de direcciones IP específicas a un rol web. Si va a realizar la implementación en un proveedor de hospedaje de terceros, póngase en contacto con el proveedor para averiguar cómo implementar restricciones de IP.

En este tutorial, creará un archivo robots.txt.

  1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto ContosoUniversity y seleccione Agregar nuevo elemento.

  2. Cree un archivo de texto denominado robots.txt y añada el texto siguiente dentro:

    User-agent: *
    Disallow: /
    

    La línea User-agent indica a los motores de búsqueda que las reglas del archivo se aplican a todos los rastreadores web (robots) del motor de búsqueda y la línea Disallow especifica que no se debe rastrear ninguna página del sitio.

    Quiere que los motores de búsqueda cataloguen la aplicación de producción, por lo que debe excluir este archivo de la implementación de producción. Para ello, configurará un valor en el perfil de publicación Producción al crearlo.

Implementación en entorno de ensayo

  1. Para abrir el Asistente para publicación web, haga clic con el botón derecho en el proyecto Contoso University y haga clic en Publicar.

  2. Asegúrese de que está seleccionado el perfil Almacenamiento provisional.

  3. Haga clic en Publicar.

    La ventana Salida muestra qué acciones de implementación se realizaron e informa de la correcta finalización de la implementación. El explorador predeterminado se abre automáticamente en la dirección URL de la aplicación web implementada.

Prueba en el entorno de ensayo

Observe que el indicador de entorno está ausente (no hay "(Test)" o "(Dev)" después del título H1, que muestra que la transformación Web.config para el indicador de entorno se ha realizado correctamente.

Home page staging

Ejecute la página Students para comprobar que la base de datos implementada no tiene alumnos.

Ejecute la página Instructors para comprobar que Code First ha inicializado la base de datos con datos de instructor:

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

En la página Cursos, haga clic en 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 "prodpwd"). Se muestra la página Actualizar créditos, que comprueba que la cuenta de administrador que ha creado en el tutorial anterior se ha implementado correctamente en el entorno de prueba.

Solicite una dirección URL no válida para provocar un error del que ELMAH realizará el seguimiento y, después, solicite el informe de errores de ELMAH. Si va a realizar la implementación en un proveedor de hospedaje de terceros, probablemente encontrará que el informe está vacío por el mismo motivo por el que estaba vacío en el tutorial anterior. Tendrá que usar las herramientas de administración de cuentas del proveedor de hospedaje para configurar permisos de carpeta y permitir que ELMAH escriba en la carpeta de registro.

La aplicación que ha creado ahora se ejecuta en la nube en una aplicación web que es similar a la que usará para producción. Como todo funciona correctamente, el siguiente paso consiste en implementarlo en producción.

Implementación en producción

El proceso para crear una aplicación web de producción e implementarla en producción es el mismo que para el almacenamiento provisional, excepto que debe excluir robots.txt de la implementación. Para ello, editará el archivo de perfil de publicación.

Creación del entorno de producción y el perfil de publicación de producción

  1. Cree la aplicación web de producción y la base de datos en Azure, mediante el mismo procedimiento que ha usado para el almacenamiento provisional.

    Al crear la base de datos, puede elegir colocarla en el mismo servidor que ha creado antes, o bien crear un servidor.

  2. Descargue el archivo .publishsettings.

  3. Para crear el perfil de publicación, importe el archivo .publishsettings de producción, con el mismo procedimiento que ha usado para el almacenamiento provisional.

    No olvide configurar el script de implementación de datos en DefaultConnection en la sección Bases de datos de la pestaña Configuración.

  4. Cambie el nombre del perfil de publicación a Producción.

  5. Configure una transformación de perfil de publicación para el indicador de entorno, con el mismo procedimiento que ha usado para almacenamiento provisional.

Edición del archivo .pubxml para excluir robots.txt

Los archivos de perfil de publicación se denominan <nombre_de_perfil>.pubxml y se encuentran en la carpeta PublishProfiles. La carpeta PublishProfiles se encuentra en la carpeta Propiedades de un proyecto de aplicación web de C#, en la carpeta Mi proyecto de un proyecto de aplicación web de VB o en la carpeta App_Data de un proyecto de aplicación web. Cada archivo .pubxml contiene la configuración que se aplica a un perfil de publicación. Los valores que escriba en el Asistente para publicar web se almacenan en estos archivos y puede editarlos para crear o cambiar valores que no estén disponibles en la interfaz de usuario de Visual Studio.

De manera predeterminada, los archivos .pubxml se incluyen en el proyecto al crear un perfil de publicación, pero puede excluirlos del proyecto y Visual Studio los seguirá usando. Visual Studio busca en la carpeta PublishProfiles los archivos .pubxml, independientemente de si se incluyen en el proyecto.

Para cada archivo .pubxml hay un archivo .pubxml.user. El archivo .pubxml.user contiene la contraseña cifrada si ha seleccionado la opción Guardar contraseña y, de manera predeterminada, se excluye del proyecto.

Un archivo .pubxml contiene los valores que pertenecen a un perfil de publicación específico. Si quiere configurar valores que se apliquen a todos los perfiles, puede crear un archivo .wpp.targets. El proceso de compilación importa estos archivos en el archivo del proyecto .csproj o .vbproj, por lo que la mayoría de los valores que puede configurar en el archivo del proyecto se pueden configurar en estos archivos. Para más información sobre los archivos .pubxml y .wpp.targets, vea Procedimiento: Edición de valores de implementación en archivos de perfil de publicación (.pubxml) y el archivo .wpp.targets en proyectos web de Visual Studio.

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

  2. Haga clic con el botón derecho en Production.pubxml y haga clic en Abrir.

    Open the .pubxml file

  3. Haga clic con el botón derecho en Production.pubxml y haga clic en Abrir.

  4. Agregue las líneas siguientes inmediatamente antes del elemento PropertyGroup de cierre:

    <ExcludeFilesFromDeployment>
        robots.txt
    </ExcludeFilesFromDeployment>
    

    Ahora el archivo .pubxml es ser similar al del siguiente ejemplo:

    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <WebPublishMethod>MSDeploy</WebPublishMethod>
        <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
        <LastUsedPlatform>Any CPU</LastUsedPlatform>
        <SiteUrlToLaunchAfterPublish>http://contosou-staging.azurewebsites.net</SiteUrlToLaunchAfterPublish>
        <ExcludeApp_Data>True</ExcludeApp_Data>
        <MSDeployServiceURL>waws-prod-bay-001.publish.azurewebsites.windows.net:443</MSDeployServiceURL>
        <DeployIisAppPath>contosou-staging</DeployIisAppPath>
        <RemoteSitePhysicalPath />
        <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
        <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
        <UserName>[username]</UserName>
        <_SavePWD>True</_SavePWD>
        <PublishDatabaseSettings>
          <!-- database settings removed -->
        </PublishDatabaseSettings>
        <ExcludeFilesFromDeployment>
            robots.txt
        </ExcludeFilesFromDeployment>
      </PropertyGroup>
      <ItemGroup>
        <MSDeployParameterValue Include="$(DeployParameterPrefix)DefaultConnection-Web.config Connection String">
          <ParameterValue>Data Source=tcp:sk0264hvc9.database.windows.net,1433;Initial Catalog=ContosoUniversity-staging;User Id=CU-staging-admin@sk0264hvc9;Password=</ParameterValue>
        </MSDeployParameterValue>
        <MSDeployParameterValue Include="$(DeployParameterPrefix)SchoolContext-Web.config Connection String">
          <ParameterValue>Data Source=tcp:sk0264hvc9.database.windows.net,1433;Initial Catalog=ContosoUniversity-staging;User Id=CU-staging-admin@sk0264hvc9;Password=</ParameterValue>
        </MSDeployParameterValue>
      </ItemGroup>
    </Project>
    

    Para más información sobre cómo excluir archivos y carpetas, vea ¿Puedo excluir archivos o carpetas específicos de la implementación? en las preguntas más frecuentes sobre implementación web para Visual Studio y ASP.NET en MSDN.

Implementación en producción

  1. Abra el Asistente para publicar web para asegurarse de que está seleccionado el perfil de publicación Producción y, después, haga clic en Iniciar vista previa en la pestaña Vista previa para comprobar que el archivo robots.txt no se copiará en la aplicación de producción.

    Preview of files to be published to production

    Revise la lista de archivos que se copiarán. Verá que se omiten todos los archivos .cs, incluidos .aspx.cs, .aspx.designer.cs, Master.cs y Master.designer.cs. Todo este código se ha compilado en los archivos ContosoUniversity.dll y ContosoUniversity.pdb que encontrará en la carpeta bin. Como solo se necesita .dll para ejecutar la aplicación y antes ha especificado que solo se deben implementar los archivos necesarios para ejecutar la aplicación, no se han copiado archivos .cs en el entorno de destino. La carpeta obj y los archivos ContosoUniversity.csproj y .csproj.user se omiten por el mismo motivo.

    Haga clic en Publicar para realizar la implementación en el entorno de producción.

  2. Pruebe en producción con el mismo procedimiento que ha usado para el almacenamiento provisional.

    Todo es idéntico al almacenamiento provisional, excepto la dirección URL y la ausencia del archivo robots.txt.

Resumen

Ya ha implementado y probado correctamente la aplicación web y está disponible públicamente en Internet.

Home page production

En el siguiente tutorial, actualizará el código de la aplicación e implementará el cambio en los entornos de prueba, ensayo y producción.

Nota:

Mientras la aplicación está en uso en el entorno de producción, debe implementar un plan de recuperación. Es decir, debe realizar copias de seguridad periódicamente de las bases de datos de la aplicación de producción en una ubicación de almacenamiento segura y debe mantener varias generaciones de esas copias de seguridad. Al actualizar la base de datos, debe realizar una copia de seguridad inmediatamente anterior al cambio. Después, si comete un error y no lo detecta hasta que lo haya implementado en producción, podrá recuperar la base de datos al estado en el que estaba antes de que resultara dañada. Para obtener más información, consulte Copia de seguridad y restauración de bases de datos de Azure SQL.

Nota:

En este tutorial, la edición de SQL Server en la que va a realizar la implementación es Azure SQL Database. Aunque el proceso de implementación es similar a otras ediciones de SQL Server, una aplicación de producción real podría necesitar código especial para Azure SQL Database en algunos escenarios. Para más información, vea Uso de Azure SQL Database y Elección entre SQL Server y Azure SQL Database.