服务器托管控制面板

Microsoft VBScript runtime error ‘800a0005’ 错误的处理

你在配置ASP网站的时候有没有遇到过类似:Microsoft VBScript runtime error ‘800a0005’ 的错误,这些网站明明在本地测试都好好的,怎么放到服务器上就出问题了呢?下面我们就来讲讲这个错误产生的原因。

 

有时候配置ASP网站会遇到类似如下的错误:

Microsoft VBScript runtime error '800a0005' 
Invalid procedure call or argument: 'Chr' 
/yourpage.asp, line 88

这些网站我们可能在本地测试过,是完全没有问题的,可是放到服务器上怎么就出问题了呢?
其实这个错误主要是因为我们编写网站的时候用的是中文版的系统,而服务器可能是英文版的,或者是英文版系统加装中文MUI的,所以才出现上述的问题。因为Chr 函数返回 String,其中包含有与指定的字符代码相关的字符 。
相关语法:
Chr(charcode)
必要的 charcode 参数是一个用来识别某字符的 Long。
说明:0 到 31 之间的数字与标准的非打印 ASCII 代码相同。例如,Chr(10) 可以返回换行字符。charcode 的正常范围为 0 – 255。然而,在 DBCS 系统,charcode 的实际范围为 -32768 到 65535。
注意:
ChrB 函数作用于包含在 String 中的字节数据。ChrB 总是返回一个单字节,而不是返回一个字符,一个字符可能是一个或两个字节。
ChrW 函数返回包含 Unicode 的 String,若在不支持 Unicode 的平台上,则其功能与 Chr 函数相同。
知道原因了,接下来就好办了。

解决方法:

把出错的line 88行代码中类似:
 stemp=stemp&chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))
中的chr换成chrw就可以了。