Artigo: 273482 - Última revisão: terça-feira, 20 de Maio de 2003 - Revisão: 2.0

PROBLEMA: Erro "Objecto de requisição, ASP 0107 (0 x 80004005)" quando publica um formulário

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.
Expandir tudo | Reduzir tudo

Sintomas

Quando regista um campo de formulário grande no Microsoft Internet Information Services 5.0, poderá receber a seguinte mensagem de erro:
Tipo de erro:
Objecto pedido, ASP 0107 (0 x 80004005)
Os dados processados estão acima do limite permitido.
Quando regista um campo de formulário grande no Microsoft Internet Information Server 4.0, poderá receber a seguinte mensagem de erro:
Pedir object error 'ASP 0107: 80004005'
Estouro de pilha
/projectname/page.asp, linha XX
Os dados processados estão acima do limite permitido.

Causa

O limite de tamanho de cada campo de formulário que é obtido no objecto pedido é 102,399 bytes. O erro ocorre quando exceder este limite.

Resolução

Para resolver este problema, utilize um dos seguintes métodos:
  • Em vez do formulário ler valores de variáveis com o conjunto Request.Form, utilize Request.BinaryRead (Request.TotalBytes) e analisar valores do formulário a partir da saída de Request.BinaryRead .
  • Utilize um esquema envio de ficheiros, tais como o Microsoft Posting Acceptor.
  • Divide as variáveis de formulário HTML em múltiplas variáveis de formulário antes de submeter o formulário. O byte 102,399 limite é para cada variável de formulário, pelo que pode ter várias variáveis de formulário 102,399 caracteres ou menos. O código de exemplo seguinte ilustra este: aviso : ANY USE BY YOU OF de código fornecido IN isto artigo IS AT seu OWN riscos. A Microsoft fornece este código "tal como está" sem garantias de qualquer tipo, expressas ou implícita, incluindo sem limitação as garantias implícitas de comercialização e/ou adequação a um fim específico.
    <FORM method=post action=LargePost.asp name=theForm onsubmit="BreakItUp()">
    <Textarea rows=3 cols=100 name=BigTextArea>A bunch of text...</Textarea>
    <input type=submit value=go>
    </form>
    
    <SCRIPT Language=JavaScript>
    function BreakItUp()
    {
      //Set the limit for field size.
      var FormLimit = 102399
    
      //Get the value of the large input object.
      var TempVar = new String
      TempVar = document.theForm.BigTextArea.value
    
      //If the length of the object is greater than the limit, break it
      //into multiple objects.
      if (TempVar.length > FormLimit)
      {
        document.theForm.BigTextArea.value = TempVar.substr(0, FormLimit)
        TempVar = TempVar.substr(FormLimit)
    
        while (TempVar.length > 0)
        {
          var objTEXTAREA = document.createElement("TEXTAREA")
          objTEXTAREA.name = "BigTextArea"
          objTEXTAREA.value = TempVar.substr(0, FormLimit)
          document.theForm.appendChild(objTEXTAREA)
          
          TempVar = TempVar.substr(FormLimit)
        }
      }
    }
    </SCRIPT>
    						
    a página ASP (Active Server Page) recepção Reconstrói a variável:
    <%
    Dim BigTextArea
    
    For I = 1 To Request.Form("BigTextArea").Count 
      BigTextArea = BigTextArea & Request.Form("BigTextArea")(I)
    Next
    %>
    						

A informação contida neste artigo aplica-se a:
  • Microsoft Active Server Pages 4.0
Palavras-chave: 
kbmt kberrmsg kbprb KB273482 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 273482  (http://support.microsoft.com/kb/273482/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.