El sitio ASP.NET a veces se congela y / o muestra texto extraño en la parte superior de la página mientras se carga, en servidores con carga equilibrada

Tengo varios servidores (dev, 2 x test, 2 x prod) que ejecutan el mismo sitio asp.net.

Los servidores de prueba y prod están en pares de equilibrio de carga (prod1 con prod2 y test1 con test2).

El par de servidores de prueba muestra algún tipo de (super) ralentización o congelación durante aproximadamente una de cada diez cargas de página. En ocasiones, aparece una línea de texto en la parte superior de la página, que se ve más o menos así:

00 OK Date: Thu, 01 Apr 2010 01:50:09 GMT Server: Microsoft-IIS/6.0 X-Powered_By: ASP.NET X-AspNet-Version:2.0.50727 Cache-Control:private Content-Type:text/html; charset=ut 

(el comienzo y el final están “cortados”).

¿Alguien habia visto algo como esto antes? ¿Alguna idea de lo que significa o lo que está causando?

Editar: A menudo también veo esto cuando hago clic en algo; aparece como texto rojo en una página amarilla:

 Error de análisis XML: no está bien formado
 Ubicación: http://203.111.46.211/3DSS/CompanyCompliance.aspx?cid=14
 Línea número 1, columna 24: 2mMTehON9OUNKySVaJ3ROpN "/>
                          ----------------------- ^

Si vuelvo y hago clic de nuevo, funciona (veo la página en la que hice clic, no el mensaje de error anterior).

Actualizar:

… Y, en lugar de cargar la página, a veces me sale una pantalla blanca con un texto como este en negro (se parece mucho al texto anterior):

HTTP / 1.1 302 Encontrado Fecha: Wed, 21 de abril de 2010 04:53:39 GMT Servidor: Microsoft-IIS / 6.0 X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Ubicación: / 3DSS / EditSections. aspx? id = 3 & siteId = 56 & sectionId = 46 Set-Cookie: .3DSS = A6CAC223D0F2517D77C7C68EEF069ABA85E9HFYV64F & FA4209E2621B8DCE38174AD699C9F0221D30D49E108CAB8A828408CF214549A949501DAFAF59F080375A50162361E4AA94E08874BF0945B2EF; ruta = /; HttpOnly Cache-Control: private Content-Type: text / html; charset = utf-8 Content-Length: 184

objeto movido aquí

Donde “aquí” es un enlace que apunta a una URL como la que estoy solicitando, excepto con una carpeta adicional, que significa algo así como:
http://123.1.2.3/MySite//MySite/Page.aspx?option=1

en lugar de:
http://123.1.2.3/MySite/Page.aspx?option=1

Actualizar:

Un colega mío encontró información que decía que podría deberse a que los servidores de prueba ejecutan iis en 64 bits (64 bits en 2003) (los servidores de prueba tienen 32 bits en 2003).

Así que intentamos decirle a IIS que use 32 bits:
cscript% SYSTEMDRIVE% \ inetpub \ adminscripts \ adsutil.vbs SET W3SVC / AppPools / Enable32bitAppOnWin64 1

% SYSTEMROOT% \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_regiis.exe -i

(desde esta página de soporte de MS )

Pero dejé de funcionar por completo (obtuve el “servidor no disponible” en una página blanca en lugar de los sitios web).

Invertir lo anterior (ver el enlace) tampoco funcionó al principio. La pestaña ASP.NET desapareció de las propiedades de nuestro sitio web de IIS y tuvimos que perder una hora para desinstalar (aspnet_regiis.exe -u) y reinstalar ASP.NET de 32 bits y volver a agregar manualmente Default.aspx a los documentos predeterminados.

Probablemente lo intentemos de nuevo en unos días, si alguien tiene algo que agregar mientras tanto, por favor.

Actualización: Esto parece en desacuerdo con todo lo que hemos descubierto hasta ahora, pero nuestras pruebas muestran que este problema ocurre solo en Firefox, no en IE o Chrome (¿?).

Actualización: la solución
Para cualquiera que encuentre esto más tarde:
Según la sugerencia de Aristos (ver respuesta aceptada), buscamos en el código el encabezado HTTP “Content-Length”. Había una página que lo configuraba, una página que saca una imagen del DB para mostrar el logotipo de una compañía (escupe directamente a la respuesta, es decir: en lugar de vincular para decir “log56.gif” puede vincular a “ThisImagePage.aspx” ? id = 56 “y servirá el gif especificado de la base de datos).
Comentamos la línea:

 HttpContext.Current.Response.AddHeader("Content-Length", File.Length.ToString()); 

… Y funcionó. Si alguien puede ver un error en eso, avísenos; de lo contrario, supongo que era algún tipo de problema de configuración de IIS o balanceador de carga, que solo aparece al configurar manualmente el contenido-longitud en archivos binarios, y solo en Firefox (!?) .

MGOwen compartiré mi experiencia por un problema similar que tuve.

Hace algún tiempo tuve un problema similar, las páginas funcionan bien, excepto algunas páginas que después de comprimirlas con gZipped tienen problemas y no funcionan correctamente, algo así como el tuyo.

Descubrí que el problema era porque configuré Content-Length en el encabezado, y luego, por algún motivo, cuando iba a aparecer gZipped Content-Length, no cambiaba / o se calculaba false, y el resultado era un error similar, como tuya.

Por lo tanto, verifique si configura Content-Length de alguna manera en sus páginas, y luego use el filtro gZip. Si es así, elimine la configuración de Longitud del contenido en su progtwig.

En términos generales, digo que la longitud tiene el problema en su página, y la longitud es una variable en Content-Length .

¡Y en tu encabezado existe la longitud del contenido!

actualizar
También creo que otra persona que noté, si su página envía como gZip ¿dónde está eso en su cabeza? si este es el encabezado completo de tu página.

El texto que está viendo es el encabezado de página. Supongo que tanto esto como el error de análisis xml son causados ​​por el corte del navegador o, lo que es más extraño, solo un fragmento de la respuesta que se transmite.

Comenzaría con el equilibrador de carga y veré si hay registros disponibles. Después de eso, trataría de deshabilitar la compresión de IIS que menciona Aristos y ver si eso tiene un efecto (en IIS obtener propiedades en la carpeta “Sitios web” y luego ir a la pestaña Servicio o averiguar si la compresión fue habilitada / modificada para ese sitio en particular).

Después de eso, es probable que tengas que recurrir a algún tipo de detector de paquetes para ver qué se envía en realidad a cada lado del equilibrador.

son las máquinas que comparten la misma llave de la máquina?
Esto junto con el acceso al estado de sesión podría causar errores extraños.

Parece que este problema es con IIS y .net.

Haga clic en Inicio -> Ejecutar y escriba el siguiente comando si está utilizando .NET 2.0 framework:% Windir% \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_regiis -i

Debate detallado aquí: http://social.msdn.microsoft.com/Forums/en-US/xmlandnetfx/thread/47f6eb6a-b062-4f4d-8b7f-b4afb1b2725d