vs2017 net mvc how for deploy configuring component asp asp.net sql-server deployment web-applications installer

asp.net - net - how to deploy a website on server



¿Cuáles podrían ser las mejores formas de implementar aplicaciones web ASP.Net? (3)

¿Has intentado utilizar el proyecto de implementación web ? Hay soporte para VS 2008 también ahora ...

Actualmente implementamos aplicaciones web creando una base de datos y ejecutando scripts SQL a través del analizador de consultas. Luego copiamos el resultado de "publicar sitio web" y configuramos ese sitio web en IIS.

Hemos visto websetup en Visual Studio, pero esa parte parece estar escasamente documentada. Por ejemplo, no tenemos claro cómo pedirle al usuario la IP y la contraseña del servidor SQL. También tendemos a que los sitios web se implementen de esta manera en carpetas como http://example.com/project , en lugar de solo http://example.com .

Luego hay problemas con la instalación de AJAX.Net o la aplicación de alguno de los otros parches.

Hasta ahora, tenemos acceso físico a los servidores. Muy pronto, vamos a enviar CDROM. ¿Cuál es el compromiso práctico entre la intervención manual y la automatización?


Evite la implementación de Visual Studio y automatice tanto como sea posible. Web Deployment Projects y NAnt pueden ser tus amigos!

En pocas palabras, nuestra configuración de implementación:

  1. Usamos RedGate SQL para guiar las diferencias entre el desarrollador y la base de datos en vivo.

  2. Un archivo de construcción NAnt que llama a MSBUILD para construir el proyecto de implementación web (.wdproj), comprime la aplicación web compilada resultante (junto con el script de cambio de SQL) y luego carga el archivo zip en el servidor.

  3. En el lado del servidor, hay otro archivo de compilación NAnt que desconecta la aplicación, realiza una copia de seguridad de la base de datos y hace una copia de seguridad del sitio web. ejecuta el script de cambio SQL, descomprime la nueva versión y trae la aplicación en línea.

El paso 3 generalmente se ejecuta "manualmente" (un doble clic), pero a veces se programa para las últimas horas de la noche. Puede hacer exactamente lo mismo desde un CDROM, o incluso escribir una pequeña aplicación de Windows Forms como un contenedor.

Muy contento de dar detalles de la secuencia de comandos NAnt si estás interesado.


Implemento principalmente aplicaciones ASP.NET en servidores Linux. Aquí está mi flujo de trabajo estándar:

  • Yo uso un repositorio de código fuente (como Subversion)
  • En el servidor, tengo un script bash que hace lo siguiente:
    • Comprueba el último código
    • Hace una compilación (crea las DLL)
    • Filtra los archivos a lo esencial (elimina los archivos de código, por ejemplo)
    • Realiza copias de seguridad de la base de datos
    • Despliega los archivos al servidor web en un directorio nombrado con la fecha actual
    • Actualiza la base de datos si se incluye un nuevo esquema en la implementación
    • Hace que la nueva instalación sea la predeterminada, por lo que se servirá con el próximo golpe

El proceso de pago se realiza con la versión de línea de comando de Subversion y la compilación se realiza con xbuild (trabajo similar a un trabajo de construcción del proyecto Mono). La mayor parte de la magia se realiza en ReleaseIt.

En mi servidor de desarrollo, esencialmente tengo integración continua, pero en lo que respecta a la producción, de hecho, SSH en el servidor e inicio la implementación de forma manual ejecutando el script. Mi script se llama inteligentemente ''deploy'', así que eso es lo que escribo en el prompt bash. Soy muy creativo No.

En producción, tengo que escribir ''implementar'' dos veces: una para extraer, compilar e implementar en un directorio fechado y otra para convertir ese directorio en la instancia predeterminada. Dado que los directorios están fechados, puedo volver a cualquier implementación anterior simplemente escribiendo ''deploy'' desde el directorio correspondiente.

La implementación inicial toma un par de minutos y la reversión a una versión anterior toma unos segundos.

Ha sido una buena solución para mí y solo se basa en las tres utilidades de línea de comandos (svn, xbuild y releaseit), el cliente de base de datos, SSH y Bash.

Realmente necesito actualizar la copia de ReleaseIt en CodePlex alguna vez:

http://releaseit.codeplex.com/