500-100.asp Returns "Type Mismatch" Error After Request.BinaryRead() Method (244758)



The information in this article applies to:

  • Microsoft Internet Information Services 5.0

This article was previously published under Q244758

SYMPTOMS

When an ASP page that uses the Request.BinaryRead() method generates an error and control is passed to the 500-100.asp error page, the following error is generated:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'Server.HTMLEncode'
/iisHelp/common/500-100.asp, line ...

CAUSE

This error is generated because the POST information from the Request.BinaryRead method returns an array, whereas the Server.HTMLEncode method in the 500-100.asp page expects a string to be passed.

WORKAROUND

The default 500-100.asp error page can be modified to ignore errors by adding an "On Error" statement:
  1. Open Windows Explorer.

    Change folders to your %SystemRoot%\help\iishelp\common folder.

    Open 500-100.asp in Notepad.

    The top lines of the file should resemble the following:
    <%@ language="VBScript" %>
    <%
      Option Explicit
    
      Const lngMaxFormBytes = 200
    					
    Change the top few lines to read the following:
    <%@ language="VBScript" %>
    <%
      Option Explicit
      On Error Resume Next
    
      Const lngMaxFormBytes = 200
    					
  2. Change folders to your %SystemRoot%\help\iishelp\common folder.

    Open 500-100.asp in Notepad.

    The top lines of the file should resemble the following:
    <%@ language="VBScript" %>
    <%
      Option Explicit
    
      Const lngMaxFormBytes = 200
    					
    Change the top few lines to read the following:
    <%@ language="VBScript" %>
    <%
      Option Explicit
      On Error Resume Next
    
      Const lngMaxFormBytes = 200
    					
  3. Open 500-100.asp in Notepad.

    The top lines of the file should resemble the following:
    <%@ language="VBScript" %>
    <%
      Option Explicit
    
      Const lngMaxFormBytes = 200
    					
    Change the top few lines to read the following:
    <%@ language="VBScript" %>
    <%
      Option Explicit
      On Error Resume Next
    
      Const lngMaxFormBytes = 200
    					
  4. The top lines of the file should resemble the following:
    <%@ language="VBScript" %>
    <%
      Option Explicit
    
      Const lngMaxFormBytes = 200
    					
    Change the top few lines to read the following:
    <%@ language="VBScript" %>
    <%
      Option Explicit
      On Error Resume Next
    
      Const lngMaxFormBytes = 200
    					
  5. Change the top few lines to read the following:
    <%@ language="VBScript" %>
    <%
      Option Explicit
      On Error Resume Next
    
      Const lngMaxFormBytes = 200
    					

MORE INFORMATION

The following steps reproduce this error on a server that is using the default, unmodified 500-100.asp error page:
  1. Save the following code as ERRTEST1.ASP in the root directory of your Web site:
    <html>
    <head><title>Page 1</title></head>
    <body>
    <form action="errtest2.asp" method="POST">
    <input type="text" name="test">
    <input type="submit">
    </form>
    </body>
    </html>
    					
  2. Next, save the following code as ERRTEST2.ASP in the root directory of your Web site:
    <%@LANGUAGE="VBSCRIPT"%>
    <html>
    <head><title>Page 2</title></head>
    <body>
    <%
      Dim vntPostedData, lngCount, lngError
      lngCount = Request.TotalBytes
      vntPostedData = Request.BinaryRead(lngCount)
      Response.Write "POST Size: " & lngCount
      lngError = 1/0
    %>
    </body>
    </html>
    					
  3. Browsing page 1 and submitting information to page 2 should return an error message like the following:
    Error Type: Microsoft VBScript runtime (0x800A000B) Division by zero /errtest2.asp, line 10
    Browser Type: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
    Page: POST 9 bytes to /errtest2.asp
    POST Data: Microsoft VBScript runtime error '800a000d' Type mismatch: 'Server.HTMLEncode' /iisHelp/common/500-100.asp, line 184

Modification Type:MajorLast Reviewed:6/28/2004
Keywords:kbpending kbprb KB244758