当前位置:首页 > ASP教程 > 应用技巧

Microsoft VBScript 运行时错误 错误 '800a0005' 无效的过程调用或参数: 'chr'

 昨天给公司服务器重做了一下系统,遇到asp附件无法上传,之前服务器上使用好好的,怎么重做了就不正常了,于是一番google,baidu,下面将解决办法送出,帮助碰到该问题的朋友少走弯路:
 1,权限问题

      请确保您所上传文件的文件夹"来宾用户"有可写入的权限,有的是存入数据库的,也要有修改权限.

 2,文件大小限制

      iis 6 出于安全考虑, 默认最大请求200k(也即最大提交数据限额为200kbyte, 204800byte). 

      解决办法:  
      关闭 iis admin service 服务
      打开 windowssystem32inesrvmetabase.xml
      修改 aspmaxrequestentityallowed 的值为自己需要的, 默认为 204800
      启动 iis admin service 
      修改之后,同时需要修改machine.config文件
      asp.net中,上传文件的默认大小是4096 kb,也就是4m,不过你可以在web.config中更改这个数据。通常更常用的的方法是直接修改       c:windowsmicrosoft.netframeworkv1.1.4322config目录下的 machine.config文件(framework版本会不同,你用什么版本就进什么版本的目录),查找httpruntime在这一行将maxrequestlength的值改为理想的值,比如想要8m,就输入8192。

 3,中文系统,安装的iis的英文补丁

     经过检查,发现客户之前使用的主机是 windows 2003中文版,后来改换成windows英文版的空间,结果就出错了.

    一般呢,系统升级了iis或者打过补丁后有时也会出现同样的问题,我们只要在asp文件前加上一段代码

    <!--   must   be   fist   line   in   asp   -->   

    <%   @lcid=4100   %>   

 4,语言问题

     在控制面板里把区域设置设置为【中国】

 5,日期,时间问题

     在控制面板里把区域和语言选项,区域选项里面,设置时间格式为:h:mm:ss,并在控制面板"日期时间“更改时区为北京.(之所以改这里,是因为有的附件传上去是用时间命名的,如果时间格式有错,会导致程序报错)

 6,上传的文件使用的中文名称或路径

     使用asp无组件上传的话,因为不支持中文,所以需要检查上传路径上是否包含中文. 

 7,报“microsoft vbscript 运行时错误 错误 '800a0005'  无效的过程调用或参数: 'chr' ”错误(我的属于这种问题)

     microsoft vbscript runtime error '800a0005' invalid procedure call or argument: 'chr' /admin/inc/upload.inc,

     line 75 出现如此错误可能是服务器用的是英文版本,因为 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 函数相同。

     所以把出错的line75行代码:stemp=stemp&chr(ascw(chrb(ascb(upfile_5xsoft_stream.read(1)))&chrb(c))) 中的chr换成chrw就可以啦


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!