Pregunta

Estoy trabajando con un legado de ASP Clásico de la solución de equilibrio de carga (a través de hardware externo, y tiene un sitio de IIS en el directorio principal de los cuales es una ruta de acceso UNC.Me han dicho que los siguientes problemas con esta configuración existen en la actualidad:

  1. Cuando se utiliza una ruta de acceso UNC como directorio de inicio, hay un "índice" en algún lugar en IIS que "cachés" una determinada cantidad de archivos de ciertos tipos, y cuando el límite, el valor por defecto de 50 años, ha sido alcanzado, las solicitudes posteriores a las páginas no están en la caché volverá 404.
  2. Cuando se utiliza una ruta de acceso UNC como directorio de inicio, cuando se inicia el sitio de IIS, la mencionada "caché", se inicia el llenado, que se atasque el sitio de IIS hasta que la caché está llena, lo que significa que los grandes sitios (de 15.000 .los archivos asp) no están disponibles para hasta 30 minutos después de que el sitio de IIS se inicia.
  3. Cuando se utiliza una ruta de acceso UNC como directorio de inicio, si más de un cierto número de solicitudes simultáneas que se realizan en el sitio, Windows va a llegar a la "Red de la BIOS límite de comando por servidor", y todos los pedidos por encima del límite tendrá que esperar hasta el IIS "cierra la sesión" para el servidor.Me dice que el límite es de 100 archivos y no se puede configurar.

Ahora, todo esto suena un poco raro.Si puedo configurar un nuevo servidor de Windows 2003 con la configuración predeterminada, y utilizarlo para alojar un ASP Clásico de la aplicación con 15.000 .los archivos asp, el uso de un recurso compartido en un servidor como el directorio home para el sitio de IIS, voy a ejecutar en estos problemas?Y si es así, hay una forma de luchar contra ellos sin cambiar la arquitectura?

(Para aclarar, la única razón por la que el "balanceo de carga" que es importante es que el equilibrio de carga es la razón por la que los archivos están en un recurso compartido en un servidor.Si no hay equilibrio de carga era necesario, los archivos pueden estar en el disco local.)

¿Fue útil?

Solución

Sí, es posible, pero sí, puede causar problemas.

Cuando ASP.NET compila ASPX, ASCX, y otras páginas de contenido en las asambleas, se crea una gran cantidad de FileSystemWatchers con el fin de supervisar que las dependencias entre ellos, de modo que cuando los cambios de los archivos, puede volver a compilar.Estos se comen los recursos de NetBIOS.

Además, cada vez que haces un Archivo.Existe o Directorio.Existe la llamada, o cualquier otro tipo de IO para el sitio el servicio de ruta, que incrementa la demanda en el NetBIOS límites así.

Es posible establecer el NetBIOS límites a través del registro a por encima de su valor por defecto a un punto.

Para un sitio pequeño, con relativamente pocos los directorios y los archivos, se podría ejecutar con éxito fuera de un recurso compartido UNC porque ASP.NET seguirá funcionando después del inicio de su ensamblados compilados.Sin embargo, el más directorios y archivos que se agregan, más probable es que los problemas son para los cultivos.

Nos trató de correr de un sitio del mamut (cientos de directorios y ASPX/archivos ASCX) y que iría bien para un par de minutos hasta que las url se accede a que el NetBIOS se alcanzaron los límites y, a continuación, cada una de las subsiguientes vista de la página de resultado en una excepción.Terminamos obligados a utilizar un robocopy solución de publicación.

En el extremo, usted tiene que probar para ver si el sitio es bastante pequeño y su configuración NetBIOS son lo suficientemente altas como para ejecutar de manera efectiva.Me gustaría sugerir el uso de una araña en un sitio de prueba, así que usted puede estar seguro de que todo lo que pueda ser compilado o de acceso al menos una vez.

Otros consejos

No estoy seguro acerca de su pregunta directa sobre la interacción entre el IIS y la UNC, pero yo sugeriría en un sitio ocupado (algo ocupado lo suficiente como para requerir de equilibrio de carga), que se puede considerar algo más que un recurso compartido de archivos.

Un asp cargado por IIS a través de una red (es decir,un recurso compartido de archivos) sufrirá negativas consecuencias en el rendimiento (latencia).

Yo sugeriría el uso de algo como robocopy para mantener todos los servidores con balanceo de carga en sincronización con una central de maestro.En otras palabras, implementar en un único servidor principal (o único maestro de la ubicación), a continuación, robocopy los archivos para cada uno de los esclavos en el equilibrador de carga de la piscina.

Esto no sólo va a quitar el extraño UNC cuestiones que usted describe, pero también debe darle un buen impulso en el rendimiento (por la eliminación de la red de golpe cuando la carga de las páginas asp).Yo esperaría bastante pesado el rendimiento aumenta si hizo esto.

Para la respuesta 3 puede cambiar la BIOS de la Red límite de comando.Su muy fácil de editar el registro de revisión: http://support.microsoft.com/kb/810886/en-us

He corrido en ese tema en particular a mí mismo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top