Pregunta ¿Cómo haces producción de sitios web de IIS?


Por lo tanto, no estoy seguro si esto es un desbordamiento de pila o una pregunta de fallo del servidor. Si tengo un sitio web .NET que quiero implementar en el entorno de producción, ¿cuál es la mejor manera de hacerlo? ¿Debo empaquetarlo como MSI e instalar? Use nant para subir los archivos necesarios. ¿Solo FTP los archivos usando Beyond Compare?

¿Cómo se implementa el código de producción? Este es un caso específico de Windows que estoy viendo aquí.


15
2018-05-01 00:50


origen




Respuestas:


IIS admite la implementación de xcopy, por lo que solo debe copiar los archivos a menos que tenga requisitos especiales.

Una forma de hacerlo es un simple script que usa ROBOCOPIA para copiar los nuevos archivos al servidor.

Si el sitio es grande y esto lleva demasiado tiempo, use un sistema de control de versiones. me gusta Mercurial para este propósito, aunque hay que tener cuidado de que los archivos de configuración del sistema de control de versiones no se sirvan al público. La implementación es simplemente una cuestión de confirmar los cambios y luego verificar la última versión en el servidor. Además de ser eficiente, esto permite retrocesos rápidos (si etiquetó la última versión buena) en caso de que su último y mejor tenga un error de showstopper.

Para minimizar el tiempo de inactividad, puede hacer que el script copie los archivos a un nuevo directorio y luego cambie rápidamente el nombre de los directorios, o cambie el lugar donde IIS apunta al nuevo directorio.


15
2018-05-01 01:23



El sistema de control de versiones es atractivo, pero para los sitios web que requieren compilación puede que no funcione bien. A menos que una versión compilada se mantenga bajo control de versión, por supuesto. - Jonathon Watney
Nunca pensé en poner en producción un sistema de control de fuente. Interesante seguro supera tener que mantener toneladas de archivos zip adicionales alrededor. - JoshBerke
Hago esto todo el tiempo con Subversion. En Apache, usaría mod_rewrite para asegurarse de que los usuarios no puedan acceder a los directorios .svn. Usar el control de versiones para la implementación es definitivamente el camino a seguir. - Luke


Considere usar el Herramienta de implementación web de Microsoft. Fue diseñado específicamente para ayudar a implementar aplicaciones web y actualizaciones para esas aplicaciones en servidores web de IIS 6 y 7 de producción y hace un mejor trabajo de la tarea que MSI (Windows Installer), IMHO.

Normalmente lo usas configurando un sitio "maestro de oro" en algún lugar y luego le dices a la herramienta que empaque los cambios desde allí. Luego mirará el servidor de destino para la implementación y hará los cambios necesarios para que se vea como el maestro dorado (que es útil para las actualizaciones posteriores). Es particularmente útil si está implementando en más de un servidor web (es decir, una comunidad), y tiene soporte para implementar más que solo archivos (también puede manejar la realización de cambios en el registro, implementación de certificados, bases de datos SQL, etc.).


13
2018-05-01 02:51



+ infinito. Esta herramienta es un salvavidas y libera a departamentos enteros (a la tsilb) para trabajar en problemas más interesantes. - Portman


Le agradecería más la respuesta de Joel sugiriendo que un servidor de integración continua recoja los cambios de su sistema de control de origen. Luego construirá el proyecto. Luego haga que copie la salida de la compilación a una nueva carpeta. Luego puede hacer algunos cambios rápidos de configuración (web.config y app.config). Voila, listo para Xcopy!

Revisa CruiseControl.NET


4
2018-05-01 01:26





Lo que hice en mi empleador anterior, que era básicamente un sitio de subastas / comercio electrónico donde no podíamos permitir mucho tiempo de inactividad:

  • Tome una versión de compilación en zip de la versión / lanzamiento para implementar en el servidor de compilación
  • Pruébelo en un servidor de prueba que tiene una copia de la base de datos de producción y tiene la misma versión de software que el software de producción. Prueba de que todo salió bien. Si no es así, reinicie la implementación del servidor de ensayo (pero primero restaure una copia de seguridad).
  • Si todo salió bien: copie los scripts de compilación y actualización de la base de datos al servidor de producción a una carpeta local. Realice una copia de seguridad específica de la base de datos y los archivos ASP.NET (en caso de que algo salga mal). Prepare todo para que solo tenga que hacer clic en Entrar para iniciar el script de actualización y la copia de los archivos de la base de datos (tenga en cuenta que podría crear un script para esto). Luego lanza todo. Esto suele ser una cuestión de segundos y los usuarios no notarán mucho que haya habido tiempo de inactividad.

Hay muchas cosas más divertidas que hacer como desarrollador web. Pero esta fue la parte más crucial de mi trabajo.


3
2018-05-04 06:49





oh jeeez, en el trabajo tenemos todo un equipo para esto. Tienen una herramienta interna que saca a un servidor del clúster / granja, publica los archivos, ejecuta las NUnits y lo agrega de nuevo al clúster / granja. Lo hacen para cada uno de los 16 servidores. Lleva horas El resto de nosotros ni siquiera tenemos "mirar alrededor de acceso".

Para mis proyectos personales, publico desde VS2005 directamente a mi servidor web. Kinda tiene menos seguridad estricta.


1
2018-05-01 02:45