Al acceder a una página ASP, aparece el error de objeto de respuesta ASP 0156: 80004005 ¿Error de encabezado HTTP? La línea 0 ha enviado el encabezado HTTP al navegador del cliente. Cualquier modificación de los encabezados HTTP debe realizarse antes de generar el contenido de la página.
De hecho, este tipo de problema se debe a problemas de almacenamiento en caché. Puede consultar los siguientes métodos para solucionarlo:
Algunas páginas ASP tendrán un error de objeto de respuesta 'ASP 0156: 80004005' y un error de encabezado HTTP cuando se abren por primera vez, pero vuelven a ser normales después de la actualización. La solución es la siguiente.
Copie el código de código de la siguiente manera:
Respuesta.Buffer = Verdadero
'Debería ser esta línea, estará bien si la eliminas
'Si eso no funciona, simplemente
Respuesta.Buffer = Verdadero
Respuesta.ExpiresAbsolute = Ahora() - 1
Respuesta.Expira = 0
Response.CacheControl = "sin caché"
Response.AddHeader "Pragma", "Sin caché"
'Eliminarlos todos. Esto se utiliza para no almacenar en caché la página. Eliminarlo no debería afectar el sitio web.
Este error se produce porque el servidor web utiliza un encabezado HTTP para configurar el navegador del cliente. Luego, el servidor web intenta restablecer el navegador del cliente utilizando encabezados HTTP adicionales (por ejemplo, cuando se emite un encabezado HTTP después de que el navegador establece tipo de contenido = texto/html). Un ejemplo es cuando se procesa una página ASP antes de incluir una etiqueta HTML o cualquier otra instrucción Response.Redirect del script del lado del servidor.
Nota: Esto también puede ocurrir si actualiza una computadora que ejecuta Microsoft Windows NT 4.0 a Microsoft Windows Server 2003.
Un ejemplo es cuando se procesa una página ASP antes de incluir una etiqueta HTML o cualquier otra instrucción Response.Redirect del script del lado del servidor.
Las siguientes propiedades y métodos de ASP para el objeto Respuesta escriben encabezados HTTP:
Respuesta.AddHeader
Respuesta.CacheControl
Respuesta.CharSet
Respuesta.Tipo de contenido
Respuesta.Expira
Respuesta.ExpiraAbsoluta
Respuesta.Redireccionamiento
Estado.de.respuesta
Volver arriba
solución
Para resolver este problema, configure encabezados HTTP, como una declaración de redireccionamiento o información de cookies antes de enviar la salida HTML.
Por ejemplo, para evitar este error con una redirección, limite el búfer o el procesamiento de la página ASP y luego emita la redirección después del procesamiento. Hay dos formas de lograr el almacenamiento en búfer: a nivel de página o a nivel de aplicación.
Tenga en cuenta que todos los scripts ASP se emiten después de la redirección. Si la página ASP se redirige antes de emitirla a un script ASP, el código ASP no se procesa.
Cuando se procesan a nivel de aplicación, todas las páginas ASP de la aplicación web se almacenan en un búfer. Para configurar el almacenamiento en búfer a nivel de aplicación, siga estos pasos: 1. En Microsoft Management Console (MMC), ubique el sitio web donde reside la aplicación web.
2. Haga clic para expandir el sitio web y mostrar el directorio virtual y la aplicación web.
3. Haga clic derecho en la aplicación web y luego haga clic en Propiedades.
4. En la pestaña Directorio virtual, haga clic en Configurar.
Tenga en cuenta que si el botón Configurar no está disponible, el directorio virtual no es una aplicación web. Haga clic en Crear para crear el directorio virtual para la aplicación web.
5. En el cuadro de diálogo ApplicationConfiguration@@, en la pestaña Opciones de aplicación, haga clic en Habilitar almacenamiento en búfer.
Para configurar el nivel de página para el almacenamiento en búfer, agregue código después de la línea @LANGUAGE en la página ASP como se muestra a continuación:
<% @LANGUAGE = "VBScript" %><% Response.Buffer = True %>Otros scripts ASP/del lado del cliente o HTML...<% Response.Redirect %>Como se muestra en la siguiente demostración de código, las cookies se pueden configurar en la página nivel, en el buffer. Este fragmento de código escribe la cookie antes de enviar la etiqueta (elemento) <HTML>.
Respuesta.Cookies("Nombre")=valor<HTML>...contenido...</HTML>
Si está utilizando un torbellino pequeño, le faltan componentes.