PROBLEMA: Não é possível carregar arquivos grandes ao usar o controle de servidor HtmlInputFile

Traduções deste artigo Traduções deste artigo
ID do artigo: 295626 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

Quando você tenta usar o controle HtmlInputFile para carregar um arquivo grande, o arquivo não pode ser carregado.

Causa

Esse problema ocorre porque o valor padrão para o parâmetro maxRequestLength o <httpruntime> seção do arquivo Machine.config é 4096 (4 megabytes). Como resultado, os arquivos que são maiores do que esse valor não são carregados por padrão.

Resolução

Para resolver esse problema, use um dos seguintes métodos:
  • No arquivo Machine.config, altere o atributo maxRequestLength do <httpruntime> seção de configuração para um valor maior. Essa alteração afeta todo o computador.
  • No arquivo Web.config, substitua o valor maxRequestLength para o aplicativo. Por exemplo, a seguinte entrada no Web.config permite que arquivos que estão menor ou igual a 8 megabytes (MB) a ser carregado:
    <httpRuntime maxRequestLength="8192" />
    					

Mais Informações

Por padrão, esse valor é restrito a 4 MB para restringir a possíveis ataques de negação de serviço.

Quando o atributo maxRequestLength está definido no arquivo Machine.config e, em seguida, uma solicitação é lançada (por exemplo, um carregamento de arquivo) que excede o valor da maxRequestLength , uma página de erro personalizada não pode ser exibida. Em vez disso, o Microsoft Internet Explorer exibirá uma mensagem de erro "Não encontrado servidor ou DNS".

Teoricamente, o tamanho de carregamento máximo do arquivo é grande o bastante. No entanto, devido a monitoração de integridade do ASP.NET, você não pode carregar arquivos muito grandes no ASP.NET. O Processo de operador ASP.NET tem um espaço de endereço virtual de 2 gigabytes (GB). No entanto, o processo do operador do ASP.NET usa apenas um pouco mais de 1 GB devido a fragmentação de memória de monitoramento e integridade.

Durante o processo de carregamento, o ASP.NET carrega o arquivo inteiro na memória antes do usuário pode salvar o arquivo para o disco. Portanto, o processo pode reciclar devido o atributo memoryLimit da marca processModel no arquivo Machine.config. O atributo memoryLimit Especifica a porcentagem de memória física que o processo do operador ASP.NET pode esgotar antes o processo de reciclagem automaticamente. Reciclagem impede que vazamentos de memória causando ASP.NET para falhar ou para parar de responder.

Além disso, outros fatores desempenham um papel no tamanho máximo do arquivo que pode ser carregado. Esses fatores incluem a memória disponível, espaço disponível no disco rígido, velocidade do processador e tráfego de rede atual. Com o tráfego normal de arquivos que estão sendo carregados, a Microsoft recomenda que você use um tamanho máximo de arquivo no intervalo de 10 a 20 megabytes (MB). Se você raramente carregar arquivos, o tamanho máximo do arquivo pode ser 100 MB.

Observação Você pode carregar arquivos maiores que 100 MB no ASP.NET. No entanto, a Microsoft recomenda que você siga os tamanhos de carregamento máximo do arquivo que são mencionados neste artigo. Para determinar tamanhos de arquivo mais precisos, execute Enfatize testes em computadores que são semelhantes àqueles que serão usados na produção.

Você pode perceber as seguintes mensagens de erro se você encontrar os limites de tamanho de arquivo durante o processo de carregamento de arquivos:
  • A página não pode ser exibida.
  • Aplicativo do servidor não está disponível
    No log de eventos, a mensagem de erro será semelhante à seguinte:

    aspnet_wp.exe (PID: PIDNumber) foi reciclado porque consumo de memória excedeu SizeLimit MB (Percentage por cento de RAM disponível).

  • Exceção do tipo System.OutOfMemoryException foi lançada.
Você também pode encontrar que carregamentos ocorrem muito lentamente. Se você observar o processo Aspnet_wp.exe no Gerenciador de tarefas do Windows, você observará que delta memória muda por 64 KB segundos de 1 a 2. Dependendo do tamanho do arquivo, esse atraso pode tornar o processo de operador do ASP.NET reciclar devido a um erro de responseDeadlock.

Propriedades

ID do artigo: 295626 - Última revisão: sexta-feira, 26 de outubro de 2007 - Revisão: 6.5
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Palavras-chave: 
kbmt kbproductlink kbconfig kbprb kbservercontrols KB295626 KbMtpt
Traduçã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: 295626

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com