今天在调式相册的时候,出现了一个问题,总是提示:
Microsoft VBScript runtime error '800a0005'
Invalid procedure call or argument: 'Chr'
UPLOAD.INC, line 75
 
一开始我就觉得应该是平台的问题,因为以前在在xp专业版上调式的,而这次出错是在2003上。
所以,一直就是回想,2003的IIS 在文件要求上与XP的IIS5有什么不同。
能想到的都想到了,但就是解决不了问题。
仔细看了看错误提示(如上红绝加粗的),突然看到了“CHR”,打开upload.inc,看到第75行是如下内容:
     stemp=stemp&Chrw(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))
  Chr(charcode)出了问题?
Chr 函数返回 String,其中包含有与指定的字符代码相关的字符 ,必要的 charcode 参数是一个用来识别某字符的 Long
突然想到出现如此错误可能是服务器用的是英文版本,因为0 到 31 之间的数字与标准的非打印 ASCII 代码相同。例如,Chr(10) 可以返回换行字符。charcode 的正常范围为 0 – 255。然而,在 DBCS 系统,charcode 的实际范围为 -32768 到 65535。
注意:     ChrB 函数作用于包含在 String 中的字节数据。ChrB 总是返回一个单字节,而不是返回一个字符,一个字符可能是一个或两个字节。ChrW 函数返回包含 Unicode 的 String,若在不支持 Unicode 的平台上,则其功能与 Chr 函数相同。
所以把出错的line75行代码换成stemp=stemp&chrw(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))