文章編號: 273482 - 上次校閱: 2003年5月20日 - 版次: 2.0

PRB: 「 要求物件,ASP 0107 (0x80004005) 」 的錯誤當您公佈表單

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
全部展開 | 全部摺疊

徵狀

當您張貼 Microsoft 網際網路資訊服務 5.0 中的大型表單欄位時,可能會收到下列錯誤訊息:
錯誤類型:
要求物件 ASP 0107 (0x80004005)
正在處理的資料是透過允許的限制。
當您張貼 Microsoft 網際網路資訊伺服器 4.0 中的大型表單欄位時,可能會收到下列錯誤訊息:
要求物件錯誤 'ASP 0107: 80004005'
堆疊溢位
/projectname/page.asp 行 XX
正在處理的資料是透過允許的限制。

發生的原因

要求 物件以擷取每個表單欄位的大小限制為 102,399 位元組。當超過此限制時,就會發生這個錯誤。

解決方案

如果要解決這個問題,使用下列方法之一:
  • 使用 Request.BinaryRead (Request.TotalBytes),而剖析表單值從 Request.BinaryRead 輸出的讀取表單變數的值與 Request.Form 集合。
  • 使用檔案上載配置,例如 Microsoft 公佈 Acceptor。
  • 送出表單之前,則請分成多個表單變數 HTML 表單變數。102,399 位元組限制為針對每個表單] 變數如此可以有多個表單變數的 102,399 字元或更少。下列範例程式碼說明這點: 警告: ANY USE BY 您的 「 代碼提供 IN 這個發行項 IS AT 自己 OWN 風險。Microsoft 提供 「 現狀 」 這個程式碼並不提供任何種類明示或默示包括但不是限於適售性以及適合某特定用途之默示擔保責任。
    <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>
    						
    接收動態伺服器網頁 (ASP) 頁面使用重建變數:
    <%
    Dim BigTextArea
    
    For I = 1 To Request.Form("BigTextArea").Count 
      BigTextArea = BigTextArea & Request.Form("BigTextArea")(I)
    Next
    %>
    						

這篇文章中的資訊適用於:
  • Microsoft Active Server Pages 4.0
關鍵字:?
kbmt kberrmsg kbprb KB273482 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:273482? (http://support.microsoft.com/kb/273482/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
Retired KB Article依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。