Ao acessar uma página asp, ele exibe Erro de objeto de resposta ASP 0156: 80004005 Erro de cabeçalho HTTP?, a linha 0 gerou o cabeçalho HTTP para o navegador do cliente. Quaisquer modificações nos cabeçalhos HTTP devem ser feitas antes da saída do conteúdo da página. Na verdade, esse tipo de problema se deve a problemas de cache. Você pode consultar os seguintes métodos para resolvê-lo:
Algumas páginas ASP terão um erro de objeto de resposta 'ASP 0156: 80004005' e um erro de cabeçalho HTTP quando forem abertas pela primeira vez, mas voltarão ao normal após a atualização.
Copie o código do código da seguinte forma:
Resposta.Buffer = Verdadeiro
'Deve ser esta linha, tudo bem se você removê-la
'Se ainda assim não funcionar, basta
Resposta.Buffer = Verdadeiro
Response.ExpiresAbsolute = Agora() - 1
Resposta.Expira = 0
Response.CacheControl = sem cache
Response.AddHeader Pragma, sem cache
'Remova todos eles. Isso é usado para não armazenar a página em cache. A remoção não deve afetar o site.
Este erro ocorre porque o servidor Web utiliza um cabeçalho HTTP para configurar o navegador do cliente. O servidor Web então tenta redefinir o navegador do cliente usando cabeçalhos HTTP adicionais (por exemplo, quando um cabeçalho HTTP é emitido após o navegador definir content-type = text/html). Um exemplo é ao processar uma página ASP antes de incluir uma tag HTML ou qualquer outra instrução Response.Redirect de script do lado do servidor.
Observação Isso também poderá ocorrer se você atualizar um computador que esteja executando o Microsoft Windows NT 4.0 para o Microsoft Windows Server 2003.
Um exemplo é ao processar uma página ASP antes de incluir uma tag HTML ou qualquer outra instrução Response.Redirect de script do lado do servidor.
As seguintes propriedades e métodos de ASP para o objeto Response gravam cabeçalhos HTTP:
Resposta.AddHeader
Resposta.CacheControl
Resposta.CharSet
Resposta.ContentType
Resposta. Expira
Response.ExpiresAbsolute
Resposta.Redirecionar
Resposta.Status
Voltar ao topo
solução
Para resolver esse problema, defina cabeçalhos HTTP, como uma instrução Redirect ou informações de cookie antes de enviar a saída HTML.
Por exemplo, para evitar esse erro com um redirecionamento, limite o buffer ou o processamento da página ASP e emita o redirecionamento após o processamento. Existem duas maneiras de realizar o buffer: no nível da página ou no nível do aplicativo.
Observe que todos os scripts ASP são emitidos após o redirecionamento. Se a página ASP for redirecionada antes de ser emitida para um script ASP, o código ASP não será processado.
Quando elas são processadas no nível do aplicativo, todas as páginas ASP do aplicativo Web são armazenadas em buffer. Para definir o buffer no nível do aplicativo, siga estas etapas: 1. No Microsoft Management Console (MMC), localize o site onde o aplicativo Web reside.
2. Clique para expandir o site para exibir o diretório virtual e o aplicativo da web.
3. Clique com o botão direito no aplicativo Web e clique em Propriedades.
4. Na guia Diretório Virtual, clique em Configurar.
Observe que se o botão Configurar não estiver disponível, o diretório virtual não é um aplicativo Web. Clique em Criar para criar o diretório virtual para o aplicativo Web.
5. Na caixa de diálogo ApplicationConfiguration@@, na guia Opções do aplicativo, clique em Habilitar buffer.
Para definir o nível de página para buffer, adicione o código após a linha @LANGUAGE na página ASP, conforme mostrado abaixo:
<% @LANGUAGE = VBScript %><% Response.Buffer = True %>Outros scripts ASP/Clientside ou HTML ...<% Response.Redirect %>Como o código a seguir demonstra, os cookies também podem ser definidos no nível da página, buffer. Este trecho de código grava o cookie antes de enviar a tag (elemento) <HTML>.
Response.Cookies(Nome)=valor<HTML>...conteúdo...</HTML>
Se você estiver usando um redemoinho pequeno, faltam componentes.