ID do artigo: 925764 - Última revisão: sexta-feira, 11 de maio de 2007 - Revisão: 1.3

Mensagem de erro quando um navegador da Web envia uma solicitação para uma página de servidor ativo em um servidor Web que esteja executando o IIS 6.0: "Resposta buffer limite excedido"

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Considere o seguinte cenário. Um navegador cliente envia uma solicitação para uma página active server (ASP) para um servidor Web que está executando o Internet Information Services (IIS) 6.0. A solicitação ASP gera uma resposta grande. Nesse cenário, os seguintes sintomas podem ocorrer:
  • A resposta falha.
  • Ocorre um erro de servidor HTTP 500 e você recebe a seguinte mensagem de erro no navegador da Web cliente:
    Erro de objeto de resposta 'ASP 0251: 80004005'
    Limite do buffer de resposta excedido
    / PageName.asp, linha LineNumber
    Observação PageName.asp representa o nome da página ASP que foi solicitada. LineNumber representa o último número de linha no arquivo que foi processado antes do buffer de resposta excedeu o limite.
  • O arquivo de log do IIS contém o seguinte erro no campo cs-uri-consulta :
    |0|ASP_0251_:_80004005|Response_Buffer_Limit_Exceeded

Causa

Esse problema ocorre devido a uma alteração no comportamento que foi introduzido no IIS 6.0 e adicionado ao IIS 5.0. Essas versões do IIS impor um limite de buffer de resposta ASP padrão de 4 MB. Esse limite impede que respostas ASP grandes de afetar negativamente o processo do IIS que hospeda o aplicativo da Web. Se uma solicitação ASP gera uma resposta que é maior que o limite de buffer configurada, os sintomas mencionadas na seção "Sintomas".

Resolução

Na maioria dos cenários, o limite do buffer de 4 MB é suficiente para respostas ASP que são enviadas para clientes da Web. Se esse limite for insuficiente, use um dos seguintes métodos:

Método 1: Diminuir o tamanho da resposta

Se a resposta for maior do que o valor padrão de 4 MB, esse tamanho freqüentemente faz com que uma experiência de usuário ruim. O navegador da Web deve receber a resposta grande pela rede. Em seguida, o navegador da Web deve analisar e exibir uma resposta HTML muito grande.

Se não tiver o cliente da Web que recebe a resposta exibir a resposta inteira como uma única página, você pode diminuir o tamanho da resposta. Por exemplo, você pode reescrever o aplicativo baseado em ASP para que os dados são apresentados em uma grade. Portanto, o cliente da Web pode procurar dados uma página por vez. Você pode usar a classe GridView no Microsoft ASP.NET para obter esse efeito. Para obter mais informações sobre a classe GridView no ASP.NET, visite o seguinte site da Web Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx (http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx)

Método 2: Use o método Response.Flush

Se você usar um loop no arquivo ASP para criar uma tabela grande ou construir dados, você pode usar o método Response.Flush . Quando você usa esse método, você ainda poderá usar armazenamento em buffer. No entanto, você também ter controle completo sobre a quantidade de dados são enviados ao cliente da Web, e você pode controlar o tamanho de buffer da resposta. Para obter mais informações sobre o método Response.Flush , visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/ms525560.aspx (http://msdn2.microsoft.com/en-us/library/ms525560.aspx)

Método 3: Desativar armazenamento em buffer

Você pode desativar o armazenamento em buffer no servidor Web, no nível do aplicativo ou no nível da página. Quando você desativar o armazenamento em buffer, o servidor Web usa HTTP em partes-codificação de transferência para enviar a resposta para o cliente da Web.

Para desativar o armazenamento em buffer no nível do aplicativo, você pode usar a propriedade de metabase AspBufferingOn . Para obter mais informações sobre a propriedade de metabase AspBufferingOn , visite o seguinte site:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/fbe1bd5f-52d4-4a26-8ab1-7bb897bb3d53.mspx (http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/fbe1bd5f-52d4-4a26-8ab1-7bb897bb3d53.mspx)
Para desativar o armazenamento em buffer no nível da página, você pode usar a propriedade Response.buffer . Para obter mais informações sobre a propriedade Response.buffer , visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/ms526001.aspx (http://msdn2.microsoft.com/en-us/library/ms526001.aspx)

Método 4: Aumentar o limite de buffer

Você pode aumentar o limite de armazenamento em buffer se uma das seguintes condições for verdadeira:
  • O cliente não é um navegador da Web.
  • Você não é possível recriar o aplicativo para aproveitar a uma tecnologia de paginação, como a classe GridView .
Se você deve aumentar o limite de buffer, selecione um limite de buffer que possibilita o maior tamanho conhecido de resposta. Se você não souber o maior tamanho de resposta antecedência, você pode aumentar o limite de buffer para um valor grande durante o teste. Após concluir o teste, use o valor maior que está no campo sc-bytes no arquivo de log do IIS para a resposta é gerada para a página.

Para aumentar o limite de armazenamento em buffer, execute essas etapas:
  1. Clique em Iniciar , clique em Executar , digite cmd e, em seguida, clique em OK .
  2. Digite o seguinte comando e pressione ENTER:
    CD /d %systemdrive%\inetpub\adminscripts
  3. Digite o seguinte comando e pressione ENTER:
    cscript.exe adsutil.vbs SET w3svc/aspbufferinglimit LimitSize
    Observação LimitSize representa o tamanho limite de armazenamento em buffer em bytes. Por exemplo, o número 67108864 define o tamanho limite de armazenamento em buffer para 64 MB.
Para confirmar que o limite do buffer é definido corretamente, execute estas etapas:
  1. Clique em Iniciar , clique em Executar , digite cmd e, em seguida, clique em OK .
  2. Digite o seguinte comando e pressione ENTER:
    CD /d %systemdrive%\inetpub\adminscripts
  3. Digite o seguinte comando e pressione ENTER:
    cscript.exe adsutil.vbs GET w3svc/aspbufferinglimit

Situação

Esse comportamento é por design.

Mais Informações

Para obter mais informações sobre a propriedade de metabase AspBufferingLimit , visite o seguinte site:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/ea7e9c3f-d0c8-4e5c-8965-0d0429a3b8f1.mspx (http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/ea7e9c3f-d0c8-4e5c-8965-0d0429a3b8f1.mspx)

A informação contida neste artigo aplica-se a:
  • Microsoft Internet Information Services 6.0
Palavras-chave: 
kbmt kbasp kbtshoot kbprb KB925764 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 925764  (http://support.microsoft.com/kb/925764/en-us/ )