VBScript 语法错误
如果 VBScript 语句结构违反了一个或多个 VBScript 脚本语言语法规则,就会产生 VBScript 语法错误。
错误通常在执行程序前,编译程序时产生。 以下是53个语法错误:
错误编号 描述
十进制 十六进制 说明
1001 800A03E9 内存不足
1002 800A03EA 语法错误
1003 800A03EB 缺少“:”
1005 800A03ED 需要 '('
1006 800A03EE 需要 ')'
1007 800A03EF 缺少“]”
1010 800A03F2 需要标识符
1011 800A03F3 需要 '='
1012 800A03F4 需要 'If'
1013 800A03F5 需要 'To'
1014 800A03F6 需要 'End'
1015 800A03F7 需要 'Function'
1016 800A03F8 需要 'Sub'
1017 800A03F9 需要 'Then'
1018 800A03FA 需要 'Wend'
1019 800A03FB 需要 'Loop'
1020 800A03FC 需要 'Next'
1021 800A03FD 需要 'Case'
1022 800A03FE 需要 'Select'
1023 800A03FF 需要表达式
1024 800A0400 需要语句
1025 800A0401 需要语句的结束
1026 800A0402 需要整数常数
1027 800A0403 需要 'While' 或 'Until'
1028 800A0404 需要 'While,'、 'Until,' 或语句未结束
1029 800A0405 需要 'With'
1030 800A0406 标识符太长
1031 800A0407 无效的数
1032 800A0408 无效的字符
1033 800A0409 未结束的串常量
1034 800A040A 未结束的注释
1037 800A040D 无效使用关键字 'Me'
1038 800A040E 'loop' 没有 'do'
1039 800A040F 无效 'exit' 语句
1040 800A0410 无效 'for' 循环控制变量
1041 800A0411 名称重定义
1042 800A0412 必须为行的第一个语句
1043 800A0413 不能赋给非Byval参数
1044 800A0414 调用 Sub 时不能使用圆括号
1045 800A0415 需要文字常数
1046 800A0416 需要 'In'
1047 800A0417 需要 'Class'
1048 800A0418 必须在一个类的内部定义
1049 800A0419 在属性声明中需要 Let , Set 或 Get
1050 800A041A 需要 'Property'
1051 800A041B 参数数目必须与属性说明一致
1052 800A041C 在类中不能有多个缺省的属性/方法
1053 800A041D 类初始化或终止不能带参数
1054 800A041E Property Let 或 Set 至少应该有一个参数
1055 800A041F 不需要的 'Next'
1056 800A0420 只能在 ‘Property’ 或 ’Function’ 或 ’Sub’ 上指定 ’Default’
1057 800A0421 说明 'Default' 必须同时说明 'Public' "
1058 800A0422 只能在 Property Get 中指定 'Default'
VBScript 运行时错误
如果 VBScript 脚本执行系统无法实施的操作,则会产生 VBScript 运行时错误。只有在运行脚本、为变量表达式赋值或
分配内存时,才会产生 VBScript 运行时错误。 以下是65个运行时错误:
错误编号 描述
十进制 十六进制 说明
5 800A0005 无效过程调用或参数
6 800A0006 溢出
7 800A0007 内存不足
9 800A0009 下标越界
10 800A000A 该数组为定长的或临时被锁定
11 800A000B 被零除
13 800A000D 类型不匹配
14 800A000E 字符串空间溢出
17 800A0011 无法执行请求的操作
28 800A001C 堆栈溢出
35 800A0023 未定义 Sub 或 Function
48 800A0030 加载 DLL 错误
51 800A0033 内部错误
52 800A0034 坏文件名或数
53 800A0035 文件未找到
54 800A0036 坏文件模式
55 800A0037 文件已经打开
57 800A0039 设备I/O错误
58 800A003A 文件已经存在
61 800A003D 磁盘空间已满
62 800A003E 输入超出文件尾
67 800A0043 文件太多
68 800A0044 设备不可用
70 800A0046 权限禁用
71 800A0047 磁盘未准备好
74 800A004A 不能用不同的驱动器重新命名
75 800A004B 路径/文件访问错误
76 800A004C 路径未找到
91 800A005B 未设置对象变量
92 800A005C For 循环未初始化
94 800A005E 非法使用 Null
322 800A0142 不能建立所需临时文件
424 800A01A8 需要对象
429 800A01AD ActiveX 部件无法创建对象
430 800A01AE 类不支持自动化
432 800A01B0 在自动化操作中未找到文件名或类名
438 800A01B6 对象不支持该属性或方法
440 800A01B8 Automation错误
445 800A01BD 对象不支持此操作
446 800A01BE 对象不支持指定的参数
447 800A01BF 对象不支持当前的区域设置
448 800A01C0 未找到命名参数
449 800A01C1 参数不可选
450 800A01C2 错误的参数个数或无效的参数属性值
451 800A01C3 对象不是一个集合
453 800A01C5 指定的dll函数未找到
455 800A01C7 代码源锁错误
457 800A01C9 这个键已经是本集合的一个元素关联
458 800A01CA 变量使用了一个 VBScript 中不支持的自动化(Automation)类型
462 800A01CE 远程服务器不存在或不能访问
481 800A01E1 无效图片
500 800A01F4 变量未定义
501 800A01F5 违法的分配
502 800A01F6 脚本对象不安全
503 800A01F7 对象不能安全初始化
504 800A01F8 对象不能安全创建
505 800A01F9 无效的或不合格的引用
506 800A01FA 类未被定义
507 800A01FB 发生异常
5016 800A1398 需要正则表达式对象
5017 800A1399 正则表达式中的语法错误
5018 800A139A 错误的数量词
5019 800A139B 在正则表达式中需要 ']'
5020 800A139C 在正则表达式中需要 ')'
5021 800A139D 字符集越界
32811 800A802B 元素未找到
ASP错误代码说明
错误代码 错误消息 说明
ASP0100 Out of memory 内存不足(不能分配要求的内存
ASP0101 Unexpected error 意外错误
ASP0102 Expecting string input 缺少字符串输入
ASP0103 Expecting numeric input 缺少数字输入
ASP0104 Opration not allowed 操作不允许
ASP0105 Index out of ange 索引超出范围(一个数组索引超届)
ASP0106 Type Mismatch 类型不匹配(遇到的数据类型不能被处理)
ASP0107 Stack Overflow 栈溢出(正在处理的数据超出了允许的范围)
ASP0115 Unexpected error 意外错误(外部对象出现可捕获的exception_name错误,脚本不能继续运行)
ASP0177 Server.CreateObject Failed 服务器创建对象失败(无效的progid)
ASP0190 Unexpected error 意外错误(当释放外部对象,产生可捕获的错误)
ASP0191 Unexpected error 意外错误(在外部对象的OnStartPage方法中产生可捕获的错误)
ASP0192 Unexpected error 意外错误(在外部对象的OnEndPage方法中产生可捕获的错误)
ASP0193 OnStartPage Failed 在外部对象的OnStartPage方法中产生错误
ASP0194 OnEndPage Failed 在外部对象的OnEndPage方法中产生错误
ASP0240 Script Engine Exception 脚本引擎从object_name对象中抛出exception_anme异常
ASP0241 CreateObject Exception object_name 对象的CreatObject方法引起了exception_name异常
ASP0242 Query OnStartPage nterface 查询对象Object_name的OnsException
服务器端包含的指令和使用程序
本节介绍IIS 5.0服务器端包含的指令的语法和参数值。还介绍IISRESTART实用程序的语法和使用,该实用程序可用来从远程计算机、命令行和SSI指令的内部管理Web服务器。
1. SSI指令、属性和标记
指令 说明
#include 将指定的文件内容插入到被发送到客户机的响应流中,并替换该指令。例如:<!-- #include file=”userfilbits.inc”à
#config 指定用于日期、时间和文件尺寸的格式,以及返回客户机的通用SSI错误消息的文本格式。例如:
<!—#config ERRMSG=”SSI Processing Error”à
<!—#config TIMEFMT=”%A, %B, %d, %Y, %H:%M:%S ”à
<!—#config SIZEFMT=”BYTES”à
参见下文中关于用于该指令的属性和标记的列表
#echo 将HTTP环境变量插入到发送给客户机的相应流中,并替换该指令。例如:
<!--#echo VAR-“SERVER_NAME”à
参见下文中关于用于该指令的属性和标记的列表
#exec 在服务器上执行一个程序或shell命令。例如:
<!--#exec
CGI=”/scripts/myapp.exe?value1=this&value2=that”à
<!--#exec CMD=”cmd.exe /c iisrestart /stop”à
<!--#exec CMD=”cmd.exe /c net start cisvc”à
参加下文中关于该指令的属性和标记列表。
必须添加以下条目到Windows Registry中才可以使用CMD属性:
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\W3SVC
\Parameters
\SSIEnableCmdDirective
将该值设置为1并重新启动WWW服务,CMD属性才被允许用于#exec指令。将其设置为0则禁止它并防止未验证的使用,否则将会破坏服务器的安装。
#flastmod 将指定文件的最新更改的日期和时间插入到要发送客户机的响应流中。例如:
<!--#flastmod file=”default.asp”à
参见下文中关于该指令的属性和标记的列表。
#fsize 将指定文件的尺寸插入到要发送给客户机的响应流中。例如:
<!--#fsize file=”default.asp”à
参见下文中关于该指令的属性和标记的列表。
2. #exec指令的命令类型属性
属性 说明
CGI 在Web服务器上下文中执行指定的应用(即通过ISAPI对请求和响应的访问),并将任何查询串的值传递到应用中。该应用与Web服务器运行在不同的内存中
CMD 启动指定的操作系统命令的解释程序的一个实例,并执行该指令的命令
3. #cinlcude、#flastmod和#fsiaze的路径类型属性
属性 说明
FILE 该属性的值是绝对和相对路径加上文件名,就像在DOS命令提示中
所使用的,如“\files\web\myfile.txt”
VIRTUAL 该属性值是绝对路径和相对路径加上文件名,与当前的Web站点的根文件夹相关。如“/file/web/myfile.txt”
4. #config指令的SIZEFMT标记
标记 说明
BYTES 文件大小将以字节返回
ABBEV 文件大小将以计算并以最近的千字节(KB)数返回
5. #config指令的TIMEFMT标记
标记 说明
%a 一周的日子按”Mon”、”Tue”等表示
%A 一周的日子按”Monday”、”Tuesday”等表示
%b 月份名按”Jan”、”Feb”等表示
%B 月份名按”January”、”February”等表示
%c 与服务器的地区相对应的当前的日期和时间格式(如11/06/99 12:51:32)
%d 一月的日子按数表示(01到31)
%H 用24小时格式表示当前时间(00到23)
%I 用12小时格式表示当前时间(01到12)
%j 按数字(001到366)表示一年的日子
%m 月份按数字表示(01到12)
%M 当前分钟按数字表示(00到59)
%p 按服务器地区表示相应的“上午”或“下午”文字如(AM或PM)
%S 当前的秒按数字表示(00到59)
%U 一年的每周按数字表示(00到51),并且每周的第一天为Sunday
%w 一周每天按数字表示(0到6),并且每周的第一天为Sunday
%W 一年的没有数字表示(00到51),并且每周的第一天为Monday
%x 当前的日期格式对应于服务器地区表示的(如11/06/99)
%X 当前时间格式相应与服务器地区表示的(12:51:32)
%y 没有世纪表示的年数(如01)
%Y 有世纪表示的年数(如2001)
%z,%Z 服务器时间带的名字或缩写(如果知道的话)
%% 百分号字符
6. #echo指令的VAR标记
标记 说明
AUTH_TYPE 客户机用来验证网页是否拒绝匿名访问的验证类 型,如“Basic”或“NTLM”(即,询问/响应)
AYTH_PASSWORD 由用户向服务器提供的口令,如果该页拒绝匿名访问并且客户机使用Basic方法验证的话
AUTH_USER 由用户向服务器提供的用户名,如果在NTLM和Basic(或其他)方法下该页拒绝匿名访问的话
CONTENT_LENGTH 在请求体中发送的字节数,即,作为POST向服务器发送的字节数
CONTENT_TYPE 作为POST在请求体中发送的数据MIME类型
DOCUMENT_NAME 由客户机请求的文档的全实际路径和文件名
DOCUMENT_URT 由客户机请求的文档的全虚拟路径和文件名
DATE_GMT 服务器操作系统中的日期和时间设置,不带任何
Greenwich Mean Time的调节
DATE_LOCAL Greenwich Mean Time调节后的服务器的操作系统的日期和时间设置
GATEWAY_INTERFACE 用于处理请求的接口类型,如“CGI/1.1”
HTTP_ACCEPT 客户机应用系统通知服务器它所能接受的MIME类型的以逗号分隔的一个列表
LAST_MODITIED 由客户机请求的文件和资源最后被更改的日期和时间
PATH_INFO 由客户机请求的文档的全虚拟路径和文件名,与该Web站点的根文件夹相关
PATH_TRANSLATED 由客户机请求的文档的全实际路径和文件名
QUERY_STRING 在从URL译码格式转换之后,被追加到客户机请求的文档或资源的URL中的任何查询串的值
QYERY_STRING_ UNESCAPED 在从URL编译格式转换前,被追加到客户机请求的文档或资源的URL中的任何查询串的值
REMOTE_ADDR 请求该页的客户机的IP地址
REMOTE_HOST 客户机请求页面的那个网络的主机名或IP地址
REMOTE_NAME 请求页面的客户机的名字(如果有的话)
REQUEST_METHOD 请求页面的使用方法,“GET”或“POST”
SCRIPT_NAME 由客户机请求的文档的全虚拟路径和文件名,与Web站点的根目录相关
SERVER_NAME 接受请求的服务器的网络名和URL主机名
SERVER_PORT 接受请求的端口号。如,“80”是对一般页的请求,“443”是对SSL源的请求
SERVER_PORT_SECURE 端口号,如果该请求是在一个源协议上的话
SERVER_PROTOCOL 传递请求所基于的HTTP协议,如“HTTP/1.1”
SERVER_SOFTWARE Web服务器的名字/版本串,如“Microsoft-IIS/5.0”
URL 在请求文档和资源时用户所指定的完整URL
ALL_HTTP 未包含在该列表中的HTTP环境变量的所有名/值对,如HTTP_COOKIE和HTTP_ACCEPT_LANGUAGE
IISRESTART实用程序及开关
Iisrestart.exe实用程序可用来管理运行在任何服务器上的Web服务。由于它以正确的顺序停止和开始各种集成的服务,因此它应先与NET STOP 和NET START命令的使用。
语法为iisrestart [computer_name] /switch [/switch…]
以下时switch值的列表:
Switch 含义
RESTART 停止然后重新启动运行在指定计算机上的所有Internet服务
START 启动运行在指定计算机上的所有Internet服务
STOP 停止运行在指定计算机上的所有Internet服务
REBOOT 重新引导指定的计算机
REBOOTONERROR 当启动、停止或重新启动Internet服务时出现错误时,重新引导指定的计算机
NORFORCE 如果试图温和地停止Internet服务失败的话,不要强迫Internet服务中断
TIMOUT:val 为了使所有Internet服务停止,设置以秒为单位的超时值
对于RESTART缺省值为20,对于REBOOT缺省值为0
如果REBOOTONERROR开关也被指定了,则如果超过超时周期,计算机将重新引导
STATUS 显示所有Internet服务的状态
ENABLE 允许本地系统中的Internet服务的重新启动
DISABLE 禁止本地系统中的Internet服务的重新启动
该实用程序可用于CMD类型的#echo SSI指令,假如网页拒绝匿名访问并且用户提供了一个合法帐户的信息,而该帐户具有对目标服务器的Administrator权限的话,但是,在这种情况下,REBOOT、START和RESTART选项将不能正确运行。
NET STOP和NET START命令
Net.ext 实用程序可用于管理运行在服务器上的任何服务,该服务器可以是本地的也可以是其他机器上的。尽管不建议与Internet服务(如WWW或FTP服务)一起使用,但对于停止和启动其他的服务是有用的(事实上,NET命令也可用于发布全部的与网络相关的其他命令)。
语法为net [start|stop]service_name
例如,可以使用该名利停止或启动Microsoft Indexing Service;即net stop cisvc和net start cisvc。它可用与CMD类型的$echo SSI指令,如果网页拒绝匿名访问并且用户提供了一个具有目标服务器上Administrator权限的帐户信息的话。
NET命令的所有选项和开光的列表可在Windows2000帮助文件中找到。从Start菜单选项选择Help,并在Help窗口的Index页查找“net commands”即可。