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

ID: Q244758


The information in this article applies to:
  • Microsoft Internet Information Services version 5.0


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.


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


  3. Open 500-100.asp in Notepad.


  4. The top lines of the file should resemble the following:
  5. 
    <%@ language="VBScript" %>
    <%
      Option Explicit
    
      Const lngMaxFormBytes = 200 
  6. Change the top few lines to read the following:
  7. 
    <%@ 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:


  2. 
    <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> 
  3. Next, save the following code as ERRTEST2.ASP in the root directory of your Web site:


  4. 
    <%@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> 
  5. Browsing page 1 and submitting information to page 2 should return an error message like the following:


  6. 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

Additional query words: iis

Keywords :
Version : winnt:5.0
Platform : winnt
Issue type : kbprb


Last Reviewed: February 2, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.