asp-classic - respuesta - error asp 0251
Límite de búfer de respuesta excedido (10)
Estoy ejecutando una consulta simple para obtener datos de mi base de datos y mostrarlos. Me aparece un error que dice que se ha Response Buffer Limit Exceeded
.
El error es: Error del objeto de respuesta ''ASP 0251: 80004005''
Límite de búfer de respuesta excedido
/abc/test_maintenanceDetail.asp, línea 0
La ejecución de la página ASP provocó que el Buffer de respuesta superara su límite configurado.
También probé Response.flush
en mi ciclo y también uso response.buffer = false
en mi parte superior de la página, pero aún no obtengo ningún dato.
Mi base de datos contiene 5600 registros para eso, por favor dame algunos pasos o código para resolver el problema.
El apoyo de Microsoft dice esto
http://support.microsoft.com/kb/925764
pero en la GUI es más fácil:
- En el administrador del servidor, haga clic en ASP.
- Cambia el límite del buffer de 4mb a 64mb.
- Aplicar y reiniciar
Enfrenté el mismo tipo de problema, mi versión de IIS es 8.5 . Aumentó el Response Buffering Limit
bajo ASP -> Limit Properties
resolvió el problema.
- En IIS 8.5, seleccione su proyecto, puede ver las opciones en el lado derecho. En eso bajo el IIS, puede ver la opción
ASP
.
- En la ventana de opciones, aumente el
Response Buffering Limit
de40194304
Response Buffering Limit
a40194304
(aproximadamente 40 MB).
- Navegue desde la opción, en la parte superior derecha puede ver el menú Acciones , Seleccionar Aplicar . Solucionó mi problema.
La razón por la que esto sucede es porque el almacenamiento en memoria está activado por defecto, y IIS 6 no puede manejar la respuesta grande.
En ASP clásico, en la parte superior de la página, después de <%@Language="VBScript"%>
add: <%Response.Buffer = False%>
En ASP.NET, agregaría Buffer="False"
a su directiva de página. Por ejemplo: <%@Page Language="C#" Buffer="False"%>
Muchas gracias! <% Response.Buffer = False%> funcionó como un amuleto! Mi tabla ASP / HTML que devolvía una página en blanco a alrededor de 2700 registros. Las siguientes líneas de depuración ayudaron a exponer el problema del almacenamiento en búfer: reemplazo el ciclo Do While de la siguiente manera y jugué con mis números de límite para ver qué sucedía:
Reemplazar
Do While not rs.EOF
''etc ... tu bloque de código que escribe las filas de la tabla
rs.moveNext
Lazo
con
Hacer mientras reccount <2500
si rs.EOF luego recuento = 2501
''etc ... tu bloque de código que escribe las filas de la tabla
rs.moveNext
Lazo
response.write "recuento =" y recuento
suba o baje el 2500 y el 2501 para ver si se trata de un problema de búfer. para mi conjunto de registros, pude ver que la página en blanco, la tabla en blanco, estaba sucediendo en aproximadamente 2700 registros, ¡buena suerte a todos y gracias de nuevo por resolver este problema! ¡Una gran solución tan simple!
Otra respuesta al mismo mensaje de error (esto simplemente solucionó mi problema) es que la unidad del sistema tenía poco espacio en el disco. Significado de 700kb gratis. Eliminar un montón de cosas no utilizadas en este servidor realmente viejo y luego reiniciar IIS y el sitio web (probablemente solo IIS era necesario) hacen que el problema desaparezca para mí.
Estoy seguro de que las otras respuestas son más útiles para la mayoría de las personas, pero para una solución rápida, solo asegúrese de que la unidad del sistema tenga espacio libre.
Puede aumentar el límite de la siguiente manera:
- Detener IIS.
- Busque el archivo% WinDir% / System32 / Inetsrv / Metabase.xml
- Modifique el valor de AspBufferingLimit. El valor predeterminado es 4194304, que es de aproximadamente 4 MB. Cambiándolo a 20 MB (20971520).
- Reinicie IIS.
Rectifiqué el error ''ASP 0251: 80004005'' Response Buffer Limit de la siguiente manera:
Para aumentar el límite de almacenamiento en IIS 6, siga estos pasos:
Haga clic en Inicio, haga clic en Ejecutar, escriba cmd y luego haga clic en Aceptar. Escriba el siguiente comando y presione ENTRAR: cd / d% systemdrive% / inetpub / adminscripts Escriba el siguiente comando y presione ENTRAR: cscript.exe adsutil.vbs SET w3svc / aspbufferinglimit LimitSize Note LimitSize representa el tamaño del límite de almacenamiento en bytes . Por ejemplo, el número 67108864 establece el tamaño del límite de almacenamiento en búfer en 64 MB. Para confirmar que el límite del búfer está configurado correctamente, siga estos pasos:
Haga clic en Inicio, haga clic en Ejecutar, escriba cmd y luego haga clic en Aceptar. Escriba el siguiente comando y presione ENTRAR: cd / d% systemdrive% / inetpub / adminscripts Escriba el siguiente comando y presione ENTRAR: cscript.exe adsutil.vbs GET w3svc / aspbufferinglimit
se refiere a https://support.microsoft.com/en-us/kb/944886
Sé que esto es muy tarde, pero para cualquier otra persona que encuentre este problema: Si está utilizando un bucle de algún tipo (en mi caso, un Do-While) para mostrar los datos, asegúrese de que se está moviendo al siguiente registro (en mi caso, un rs.MoveNext).
Si buscas el motivo y no quieres pelear con la configuración del sistema, estas son dos situaciones principales que enfrenté:
- Puede tener un ciclo infinito sin next o recordest.movenext
- ¡Sus datos de texto son muy grandes, pero cree que no lo son! La razón común de esta situación es copiar y pegar una Imagen de la palabra de Microsoft directamente en el editor, por lo que el servidor traduce la imagen a objetos de datos y la guarda en su campo de texto. Esto puede ocupar fácilmente los recursos de la base de datos y causa problemas en el búfer al volver a llamar los datos.
Si no puede cambiar el límite del buffer en el nivel del servidor, necesitará usar el método <% Response.Buffer = False%>.
SIN EMBARGO, si todavía está recibiendo este error y tiene una tabla grande en la página, el culpable puede ser la tabla misma. Por diseño, algunas versiones de Internet Explorer amortiguarán todo el contenido antes de que se represente en la página. Por lo tanto, incluso si le está diciendo a la página que no almacene el contenido, el elemento de la tabla puede almacenarse en el búfer y causar este error.
Algunas soluciones alternativas pueden ser paginar los resultados de la tabla, pero si debe mostrar toda la tabla y tiene miles de filas, coloque esta línea de código en el medio del ciclo de generación de la tabla: <% Response.Flush%>. Para consideraciones de velocidad, también puede considerar agregar un contador básico para que la descarga solo ocurra cada 25 o 100 líneas más o menos.
Inconvenientes de no almacenar en búfer el resultado:
- ralentización de la carga general de la página
- las tablas y las columnas ajustarán sus anchuras a medida que el contenido se rellena (la tabla parece tambalearse)
- Los usuarios podrán hacer clic en los enlaces e interactuar con la página antes de que esté completamente cargada. Por lo tanto, si tiene algún javascript en la parte inferior de la página, puede moverlo a la parte superior para asegurarse de que esté cargado antes de que algunos de sus usuarios más rápidos hagan clic en las cosas.
Consulte este artículo de KB para obtener más información http://support.microsoft.com/kb/925764
Espero que ayude.