¿Cuáles son los posibles inconvenientes de un sitio IIS 7 que tiene una unión NTFS como raíz web?

13

Estoy tratando de encontrar una manera de implementar el código ASP.NET con la menor molestia posible en el sitio. Una idea era configurar el sitio para ser servido desde un cruce NTFS c:\www\example.comdonde

c:\www\example.com -> c:\www\example.com_r1234

Luego, cuando se implementa un nuevo código, se copia c:\www\site.com_r1235y se vuelve a unir la unión a

c:\www\example.com -> c:\www\example.com_r1235

Entonces, mi pregunta es ¿qué efecto podría tener esto en las solicitudes actuales en IIS? ¿Qué otros inconvenientes podría tener esto desde el punto de vista de la reacción de IIS al cambio (si corresponde)? ¿Será tan fácil para el usuario final del sitio como espero?

(He considerado cambiar la raíz web del sitio a través de la línea de comando, pero realmente no me gusta la idea de reconfigurar IIS debido a cualquier dominio de aplicación innecesario o cambio de grupo de aplicaciones que pueda ocurrir, pero no sé mucho sobre qué sucede cuando la ruta física configurada de un sitio cambia mientras está bajo carga)

Para ser claros, mi única preocupación aquí es la experiencia de mis usuarios finales. Mi objetivo es evitar molestias para ellos, no conveniencia para mí.

jayrdub
fuente
1
Restablece la raíz web. Cualquier reciclaje (no creo que lo haría) y los reinicios del grupo de aplicaciones son entonces a) probablemente no "innecesarios", yb) ayudan al proceso del trabajador a mantener una idea realista sobre el estado de su contenido y cachés. Es una solución inteligente, claro, pero inteligente rara vez significa estable. Descubra lo que hace la mayoría de las personas, luego haga eso.
TristanK
Esa es una gran pregunta, he estado buscando una respuesta a eso durante mucho tiempo. Todo lo que he visto es una implementación continua bajo un equilibrador de carga (que no tengo) o una simple copia / svn de archivos en la raíz web (que no me gusta).
jayrdub
1
Por lo tanto, intente reorientar la raíz web primero.
TristanK

Respuestas:

3

una forma de implementar código ASP.NET con la menor perturbación del sitio posible.

Parece que este objetivo y su solución propuesta no están alineados, porque ahora tiene un montón de trabajo adicional o scripts involucrados para cada implementación.

Una cosa que he visto es instalar un cliente svn en el servidor de producción, y el sitio de producción es una copia desprotegida de una ubicación / rama específica en el árbol de control de origen. De esta manera, al menos solo tiene que actualizar los archivos modificados para nuevas implementaciones.

Joel Coel
fuente
Esa operación de red causaría que los artefactos del sitio estén en un estado de ambigüedad durante demasiado tiempo. Esa es la situación exacta que estoy tratando de evitar. Estoy tratando de eliminar el tiempo en que los ensamblados bajo el raíz web son de diferentes versiones.
jayrdub
1
El "trabajo adicional y los scripts involucrados" no es una preocupación, estamos completamente automatizados
Jayrdub
Creo que para ser justos, las molestias y el trabajo requerido no son realmente lo mismo
Mark Henderson
A lo que me refiero es a la perturbación del usuario final de mi sitio
Jayrdub
2

Creé una carpeta detrás de mi raíz web llamada _images

C:\DEV\_IMAGES

luego copié un montón de archivos gif en él. Luego creé un enlace simbólico NTFS en mi raíz usando

C:\DEV\PROJECT\ROOT mklink /D webimages ..\_images

En Visual Studio 2010, "Mostrar todos los archivos", luego actualizo ... e incluyo las nuevas "imágenes web" en mi proyecto. Ahora puedo señalar ...

img src='webimages/icon.gif'

Cuando ejecuto la aplicación, también funciona bien en mi máquina local.

No sé si funciona en el servidor real (IIS 7) hasta que la infraestructura se encargue de esto, ¿alguien sabe algún problema sobre por qué esto no funcionaría en la producción?

Creo que siempre y cuando los derechos estén ahí, debería ser, y si es así, qué gran manera de simplificar el intercambio de carpetas (de todo tipo) entre aplicaciones web.

Todavía no he tratado de expresar esto en TFS, así que si alguien tiene comentarios sobre esto, ¡háganoslo saber!

Greg
fuente
0

Esto no funcionará porque IIS puede pensar que web.config ha cambiado por otro programa. IIS probablemente arrojará una excepción System.Configuration.ConfigurationErrorsException. Sugeriría escribir algún tipo de script para cambiar el directorio de inicio del sitio.

Cory
fuente