Sé que esta es una pregunta muy básica. Si alguien pudiera hacerme caso y decirme cómo manejarían esto, estaría agradecido.
Decidí publicar esto porque estoy a punto de instalar SynchToy para solucionar el problema a continuación, y me siento un poco poco profesional usando un "Juguete", pero no puedo pensar en una mejor manera.
Muchas veces, cuando me encuentro en esta situación, me falta una forma dolorosamente obvia de hacer las cosas: esto es ser el único desarrollador de la empresa.
- Aplicación web ASP.NET desarrollada en mi computadora en el trabajo
- La solución tiene 2 proyectos:
- Sitio web (archivos)
- WebsiteLib (C # / dll)
- Usando un repositorio Git
- Implementado en un servidor web GoGrid 2008R2
Despliegue:
- Haz cambios en el código.
- Empuja a Git.
- Escritorio remoto al servidor.
- Tire de Git.
- Sobrescriba los archivos en vivo arrastrando / soltando con Windows Explorer.
En el Paso 5 elimino todos los archivos de la raíz del sitio web ... esto no puede ser algo bueno. Es por eso que estoy a punto de instalar SynchToy ...
ACTUALIZACIÓN: GRACIAS por todas las respuestas útiles. No puedo elegir cuál marcar la respuesta, entre usar una implementación web, parece que tengo varias sugerencias útiles:
- Proyecto web = sitio completo empaquetado en un solo archivo DLL - desventaja para mí no puedo enviar actualizaciones simples - siendo un desarrollador solitario en una compañía de 50, esto sigue siendo algo que es más simple a veces.
- Al pasar directamente de SCM a la raíz web del sitio, originalmente no hice esto por temor a que mi directorio oculto de SCM pudiera quedar expuesto, pero las respuestas aquí me ayudaron a superar eso (aunque todavía no me gusta tener uno más de lo que preocuparse por olvidar para asegurarse de que sigue siendo cierto con el tiempo)
- Usar una granja de servidores web e implementar sistemáticamente en nodos: esta es la solución ideal para el tiempo de inactividad cero, que en realidad es algo que me importa, ya que el sitio es esencialmente una fuente de ingresos en tiempo real para mi empresa; podría ser difícil convencerlos de que aunque el doble del costo de los servidores.
-> finalmente, la reafirmación del principio básico de que debe haber un despliegue de un solo clic para el sitio O, DE OTRA MANERA, ALGO MALO es probablemente lo más útil que obtuve de las respuestas.
ACTUALIZACIÓN 2: pensé en volver a esto y actualizar con la solución real que ha estado en funcionamiento durante muchos meses y que funciona perfectamente (para mi solución de servidor web único).
El proceso que uso es:
- Hacer cambios de código
- Empujar a Git
- Escritorio remoto al servidor
- Tire de Git
Ejecute el siguiente script por lotes:
cd C: \ Usuarios \ Administrador
% systemroot% \ system32 \ inetsrv \ appcmd.exe detiene el sitio "/site.name:Sitio web predeterminado"
robocopy Documents \ code \ da \ 1 \ work \ Tree \ LendingTreeWebSite1 c: \ inetpub \ wwwroot / E / XF connectionsconfig Web.config
% systemroot% \ system32 \ inetsrv \ appcmd.exe sitio de inicio "/site.name:Sitio web predeterminado"
Como puede ver, esto hace que el sitio se caiga, utiliza robocopy para copiar de manera inteligente los archivos que han cambiado y luego vuelve a hacer que el sitio vuelva a funcionar. Por lo general, se ejecuta en menos de 2 segundos. Dado que el tráfico máximo en este sitio es de aproximadamente 2 solicitudes por segundo, es aceptable que falten 4 solicitudes por actualización del sitio.
Sin embargo, me he vuelto más competente con Git. He descubierto que los primeros cuatro pasos anteriores como un "proceso manual" también son aceptables, aunque estoy seguro de que podría hacerlo todo en un solo clic si quisiera.
La documentación para AppCmd.exe está aquí . La documentación para Robocopy está aquí .