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:
- 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
MORE INFORMATION
The following steps reproduce this error on a server that is using the default, unmodified 500-100.asp error page:
- 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>
- 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>
- 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
Additional query words:
iis
Keywords :
Version : winnt:5.0
Platform : winnt
Issue type : kbprb