HTTP 500 ou limite de buffer de resposta excedeu o erro ao usar Response.BinaryWrite no IIS
Este artigo ajuda você a resolve o erro (HTTP 500 ou limite de buffer de resposta excedido) que ocorre quando você usa o Response.BinaryWrite
método para enviar um arquivo.
Versão original do produto: Internet Information Services 7 e versões posteriores
Número de KB original: 944886
Sintomas
Quando você envia um arquivo para um computador cliente de um servidor Web no qual o IIS (Internet Information Services) 7 ou uma versão posterior é instalado, você pode receber uma mensagem de erro no computador cliente que se assemelha a uma das seguintes:
Mensagem de erro 1
HTTP 500 – Erro interno do servidor
Mensagem de erro 2
Erro do objeto de resposta 'ASP 0251 : 80004005'
Limite de buffer de resposta excedido
A execução da página ASP fez com que o Buffer de Resposta excedesse seu limite configurado.Mensagem de erro 3
Além disso, você pode receber uma mensagem no arquivo de log do IIS que se assemelha ao seguinte:
ASP_0251_:_80004005|Response_Buffer_Limit_Exceeded
Esse problema ocorre quando você usa o Response.BinaryWrite
método para enviar o arquivo para o computador cliente e a AspBufferingOn
propriedade é definida como False.
Motivo
Esse problema ocorre porque o IIS impõe um valor de buffer de resposta ASP (Active Server Pages) padrão de 4 MB quando o buffer de resposta ASP é desabilitado.
Na maioria dos cenários, o limite de buffer de 4 MB é suficiente para respostas ASP enviadas para clientes Web. Se esse limite for insuficiente, use um dos métodos a seguir.
Resolução 1: diminuir o tamanho da resposta
Para resolve esse problema quando você usar o método e o Response.BinaryWrite
buffer ASP estiver desativado, verifique se os dados retornados ao cliente não são maiores que 4 MB.
Se a resposta for maior que o valor padrão de 4 MB, esse tamanho frequentemente causará 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 grande.
Resolução 2: habilitar o buffer de resposta ASP e aumentar o limite de buffer
Você pode usar a propriedade metabase do AspBufferingOn
IIS para habilitar ou desabilitar o buffer no nível do aplicativo.
Observação
Nas versões IIS 7 e posteriores, você pode habilitar ou desabilitar o buffer de resposta ASP no nível do aplicativo usando o bufferingOn
valor na seção ASP do <System.webserver>
ApplicationHost.config
no arquivo ou no Web.config
arquivo.
Para habilitar ou desabilitar o buffer no nível da página, você pode usar a Response.Buffer
propriedade.
Se você precisar aumentar o limite de buffer, selecione um limite de buffer que permita o maior tamanho de resposta conhecido. Se você não souber o maior tamanho de resposta com antecedência, poderá aumentar o limite de buffer para um valor grande durante o teste. Depois de concluir o teste, use o maior valor que aparece no campo sc-bytes no arquivo de log do IIS para a resposta gerada para a página.
Para aumentar o limite de buffer no IIS 7 e versões posteriores, siga estas etapas:
Selecione Iniciar, selecione Executar, digite cmd e selecione OK.
Digite o
cd /d %systemdrive%\inetpub\adminscripts
comando e pressione Enter.Digite o
cscript.exe adsutil.vbs SET w3svc/aspbufferinglimit LimitSize
comando e pressione Enter.Observação
LimitSize
representa o tamanho do limite de buffer em bytes. Por exemplo, o número 67108864 define o tamanho do limite de buffer como 64 MB.
Para confirmar se o limite de buffer está definido corretamente, siga estas etapas:
- Selecione Iniciar, selecione Executar, digite cmd e selecione OK.
- Digite o
cd /d %systemdrive%\inetpub\adminscripts
comando e pressione Enter. - Digite o
cscript.exe adsutil.vbs GET w3svc/aspbufferinglimit
comando e pressione Enter.
Mais informações
Quando você usa o método e o Response.BinaryWrite
buffer de resposta ASP é desabilitado, você só pode enviar 4 MB de dados para o cliente, a menos que a propriedade de limite de buffer da página seja definida explicitamente. Por padrão, o valor da bufferLimit
propriedade no IIS 7 ou uma versão posterior é 4.194.304 bytes.
Além disso, a BinaryWrite()
API falhará se a resposta ao cliente for maior que o valor do limite de buffer, embora o buffer de resposta ASP esteja desativado.
Observação
Recomendamos habilitar o buffer de resposta ASP. O buffer de resposta ASP aumenta o desempenho de um aplicativo Web.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários