gpt4 book ai didi

ASP常见错误详解及解决方案小结

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 33 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章ASP常见错误详解及解决方案小结由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

有三种主要的错误类型:

1.编译错误:

这种错误出现一般都是代码的语法问题。因为编译错误而导致辞ASP停止运行.

2.运行错误:

这个错误是发生在你准备运行ASP时的。例如:如果你试图给一个变量赋值,但是却超出了该变量允许的范围.

3.逻辑错误:

逻辑错误是最难被发现的,这种错误经常是一种结构错误,电脑是发现不了的。这就需要我们彻头彻尾地检查我们的代码.

因为编译错误一般是和逻辑错误一起发生的,一般都能显示出来,所以我们担心的就只是运行错误。它都终止ASP的运行,而且给用户丢下一堆很不友好的文字。 那么我们要怎样处理运行错误呢?

错误类型:

ADODB.Field (0x800A0BCD) 。

BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录.

原因:你在利用SQL查找数据库的记录时,查找结果为空,而且你没有对空记录的情况做出处理.

解决:1 如果你不相信查找结果为空,那你应该考虑你的SQL语句是否正确;2 如果确实有空的情况,那你应该添加”if rs.eof then”或者”do while not rs.eof”之类的语句,对eof的情况进行处理.

错误类型:

(0×80020009) 。

发生意外.

原因:也是在利用SQL查找数据库记录时,查找结果为空,而且你在后面的代码中调用了rs(“aa”)之类的记录 。

解决:要么同上,加上rs.eof的判断和处理,要么就是你的SQL语句有误,导致记录查不出来,也就无法在后来使用rs(“aa”)的记录了.

错误类型:

Active Server Pages, ASP 0126 (0×80004005) 。

找不到包含文件 ‘xxx.asp'.

原因:就如错误提示所说,不存在这个包含文件.

解决:如果你确定有这个文件,那么就是你的路径写错了,比如说其实他相对于网站根目录的路径应该是inc/xxx.asp,那么include里面就应该写inc/xxx.asp,而不仅仅是xxx.asp。附:include的写法是:

错误类型:

Microsoft OLE DB Provider for ODBC Drivers (0×80004005) 。

[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询.

原因:这个在XP服务器上非常常见,属于服务器的配置问题,或者说是用户的权限问题.

解决:如果仅仅是在本机上调试出现的错误,则右键点击网站所在的文件夹,点击”共享和安全…”,在”安全”中点添加…,写入everyone,然后再使这个用户的权限为所有,即除了第一个外全部打勾,确定之后再刷新就可以用了。(注:如果找不到“安全”选项,则在任意一个文件夹下点击“工具”,然后是“文件夹选项”--“查看”,在“使用简单文件共享”一栏把勾去掉即可) 。

错误类型:

Microsoft VBScript 编译器错误 (0x800A0401) 。

语句未结束 。

原因:语法错误.

解决:按系统所提示的行来检查。如果提示的恰好是本页的最后一行,则很有可能是if语句忘记写”end if”啦,select语句忘记写”end select”啦,总之是需要end的地方没有end,导致服务器找不到语句的结尾,只好在最后一行显示错误.

错误类型:

Microsoft JET Database Engine (0x80040E10) 。

至少一个参数没有被指定值.

原因:在写SQL语句的时候,我们经常会调用一些参数,很可能这些参数中有一个没有被赋值.

解决:检查每一个参数的值是否真的传递过来了,很可能有些参数其实是”",这样的参数去索引数据库当然是不行的.

错误类型:

Microsoft JET Database Engine (0x80040E37) 。

Microsoft Jet 数据库引擎找不到输入表或查询 ‘AA'。 确定它是否存在,以及它的名称的拼写是否正确.

原因:不存在这个表.

解决:应该是你写错了表名,或者连错了数据库?再仔细核对一下吧.

错误类型:

Microsoft VBScript 运行时错误 (0x800A000D) 。

类型不匹配: \'[string: ""]\” 。

原因:是因为你的变量的类型是字符串型的,而你却当作数字或者其他类型来使用.

解决:比如你需要数字的变量用来计算i=i+1等数学运算,那么应该在变量上使用cint(变量名),强制转换为数字型,两个变量之间作比较也一定要是相同的类型,因此也需要转换,方法同上.

错误类型:

Microsoft JET Database Engine (0x80040E07) 。

标准表达式中数据类型不匹配.

原因:一般也是在写SQL语句时发生了错误,即把数字型和字符串型的变量混淆了.

解决:很好办,试一试把SQL中变量加了”的去掉单引号,或者把原先认为是数字的加上”,再查看效果.

错误类型:

Microsoft VBScript 运行是错误(0x800A01A8) 。

缺少对象:” 。

原因:很有可能是你没有对rs对象进行定义.

解决:别忘了写set rs=server.CreateObject(“adodb.recordset”),这样可以定义对象;或者直接不用这种写法,直接用conn.execute(“SQL”)这样会方便得多,也不用考虑对象问题.

错误类型:

Microsoft VBScript 运行时错误 (0x800A005E) 。

无效使用 Null: ‘Replace' 。

原因:无效使用函数的情况也比较多见,包括Split等,这个道理也比较简单,就是因为你Replace的内容是空的.

解决:最好加一句IF检验一下你要replace的内容是否为空.

Microsoft VBScript 编译器错误 错误 '800a03f6′ 。

ODBC 驱动程序不支持所需的属性.

原因:可能是因为没有sql语句里出现的字段名,一般为字段名或sql关键字书写错误。也有可能是sql所要打开的表已经被独占打开.

解决方法:检查sql语句里出现的每个字段名,和每个关键字 。

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005′ 。

机器 ‘HDZC-3JQSKBWO02′ 上的用户 ‘Admin' 以独占方式的锁定数据表'order_detail'.

原因:sql所需的表被access以表设计形式打开着 。

解决方法:关闭表设计 。

Microsoft VBScript 编译器错误 错误 '800a03f6′ 。

在对应所需名称或序数的集合中,未找到项目.

原因:没有sql语句里出现的字段名,一般为字段名或sql关键字书写错误 。

解决方法:检查sql语句里出现的每个字段名 。

ADODB.Recordset 错误 '800a0e78′ 。

对象关闭时,不允许操作.

原因:在rs.open sql,conn,3,3语句之前使用了rs.close关闭了rs对象 。

解决方法:去掉之前的rs.close 。

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14′ 。

[Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失) 在查询表达式 ‘oid form classtree where oid = 25′ 中.

原因:在sql语句中存在非法书写的英文关键字或子段错误 。

解决方法:把sql语句打出来,然后逐个单词对照,查找出书写的错误 。

操作要求一个可更新的查询 。

答:看看库文件是不是只读了.

答2:经过排序(order by) 的记录集(rs)不允许有更新操作(rs.update) 。

3219 操作在该内容中不被允许 。

答3:数据库字段属性是否设置为允许空值插入.

adErrInvalidArgument 3001 。

0x800A0BB9 。

应用程序使用的参数其类型错误、超出可接受的范围或者与其他参数冲突.

adErrNoCurrentRecord 3021 。

0x800A0BCD 。

BOF 或 EOF 为 True,或者当前记录已经删除。应用程序请求的操作需要当前记录.

adErrIllegalOperation 3219 。

0x800A0C93 。

应用程序请求的操作不允许出现在该上下文中 。

adErrInTransaction 3246 。

0x800A0CAE 。

在事务中应用程序无法显式关闭 Connection 对象.

adErrFeatureNotAvailable 3251 。

0x800A0CB3 。

提供者不支持应用程序请求的操作.

adErrItemNotFound 3265 。

0x800A0CC1 。

ADO 无法在对应于应用程序请求的名称或顺序引用的集合中找到对象.

adErrObjectInCollection 3367 。

0x800A0D27 。

无法追加,对象已经在集合中.

adErrObjectNotSet 3420 0x800A0D5C 应用程序引用的对象不再指向有效的对象.

adErrDataConversion 3421 。

0x800A0D5D 。

应用程序使用了不符合对当前操作的值类型.

adErrObjectClosed 3704 。

0x800A0E78 。

如果对象关闭,则不允许应用程序请求的操作.

adErrObjectOpen 3705 。

0x800A0E79 。

如果对象打开,则不允许应用程序请求的操作.

adErrProviderNotFound 3706 。

0x800A0E7A 。

ADO 找不到指定的提供者.

adErrBoundToCommand 3707 。

0x800A0E7B 。

应用程序无法用 Command 对象将 Recordset 对象的 ActiveConnection 属性更改为它的来源数据.

adErrInvalidParamInfo 3708 。

0x800A0E7C 。

应用程序错误地定义了 Parameter 对象.

adErrInvalidConnection 3709 。

0x800A0E7D 。

应用程序通过引用关闭或无效的 Connection 对象来请求对对象的操作.

ADODB.Field 错误 '80020009′ BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录.

解决如下:这个错误是因SELECT、DELETE的记录不存在,或者库中没有记录所引起的,所以检查SQL语句,SELECT、DELETE的条件是否正确,还有在DELETE前最好SELECT一个记录或者用On Error Resume Next…….On Error Goto 0来处理。如果是因为库中没记录,只要加个判断If objRecordSet.Eof And objRecordSet.Bof Then就可以了,因为打开RecordSet时,指针默认是指在最面的,所以可以只用If objRecordSet.Eof Then来判断 。

ActiveServerPages,ASP0126(0×80004005)–>找不到包含文件 。

MicrosoftOLEDBProviderforODBCDrivers(0x80040E21)–>sql语句出错(数据类型不匹配或表名(字段名)错误或表处于编辑状态,或表不存在于conn打开的数据库中) 。

MicrosoftOLEDBProviderforODBCDrivers(0x80040E14)–>sql语句出错(字段名错误,或数据类型不匹配) 。

MicrosoftOLEDBProviderforODBCDrivers(0x80040E07)–>sql语句出错(要插入或更新的字段的类型与变量数据类型不匹配) 。

MicrosoftOLEDBProviderforODBCDrivers(0x80040E57)–>sql语句出错(要插入或更新的数据溢出) 。

MicrosoftOLEDBProviderforODBCDrivers(0x80040E10)–>sql语句出错(update字段名或要更新的数据类型错误) 。

MicrosoftOLEDBProviderforODBCDrivers(0×80004005)–>sql语句出错(要插入或更新的字段的数值不能为空值) 。

MicrosoftOLEDBProviderforODBCDrivers(0×80004005) –>打开数据库出错,没有在指定目录发现数据库 。

MicrosoftOLEDBProviderforODBCDrivers(0x80040E37)–>没有发现表 。

MicrosoftVBscript运行时错误(0x800A000D)–>错误引用rs变量(rs对像已关闭或未定义) 。

MicrosoftVBscript运行时错误(0x800A01C2)–>vbscript脚本错误(vbscript语句出错) 。

MicrosoftVBscript运行时错误(0x800A0006)–>vbscript脚本错误(溢出错误) 。

MicrosoftVBscript编译器错误(0x800A040E)–>缺少loop 。

MicrosoftVBscript编译器错误(0x800A03EA)–>缺少if或endif 。

MicrosoftVBscript编译器错误(0x800A03EE)–> 语句未结束(缺少”)”) 。

MicrosoftVBscript编译器错误(0x800A03F6)–>if语句出错(缺少endif) 。

MicrosoftVBscript运行时错误(0x800A005B)–>缺少set 。

MicrosoftVBscript运行时错误(0x800A0005)–>变量未定义 。

MicrosoftVBscript编译器错误(0x800A03F9)–>if语句缺少then 。

MicrosoftVBscript编译器错误(0x800A0411)–>dim语句定义错误 。

ADODB.Recordset(0x800A0BB9)–>sql语句出错(sql语句或conn语句未定义或对一个rs属性进行赋值时发生错误) 。

ADODB.Recordset(0x800A0CC1)–>rs对像出错(rs对像本身不存在或错误地引用了一个不存在的字段名) 。

ADODB.Recordset(0x800A0BCD)–>rs对像出错(记录集中没有记录却对记录集进行操作) 。

ADODB.Recordset(0x800A0E78)–>rs对像出错(记录集不存在,缺少rs.open语句) 。

ADODB.Recordset(0x800A0CC1) –>rs对像出错(引用了一个不存在的字段名) 。

ADODB.Recordset(0x800A0E7D)–>conn定义错误 。

ADODB.Recordset(0x800A0CB3)–>数据库以只读方式打开,无法更新数据 。

错误之一:不能在浏览器端显示调试信息,只显示HTTP 500错误.

不出意外的话,只要你开发过Asp程序,绝对会出现这样的错误。出现这样的错误也不要紧,毕竟可以根据浏览器上面显示的错误原因进行解决。但是在Windows 2003 Server + IIS 6.0 下面就只报告“内部服务器错误”,没有具体的信息,让人郁闷的不行。一般来说可以通过如下的配置让IIS启动调试ASP程序(标红的选项打勾),具体见见图1,图2。要出现此配置项,在IIS中你发布的网站(一般为默认网站)上单击右键,选择属性,在弹出的选项中,点主目录,点配置按钮就可以出现如图1,图2的选项.

ASP常见错误详解及解决方案小结

图1 启用父路径 。

ASP常见错误详解及解决方案小结

图2 启用ASP程序调试 。

但是很奇怪的是做了这些修改之后,浏览器还是不能正常显示错误信息。一直以为这个是IIS服务器的问题,最后通过多方查找资料,终于发现是Internet Explore的问题。通过作如下的配置就可以正常显示了(按标红的选项修改,默认的勾和下面的图片显示刚好相反)。具体点击Internet Explorer—工具—Internet选项就可出现如下选项页:

ASP常见错误详解及解决方案小结

图3 Internet 选项配置 。

做了以上的修改之后,一般来说就可以正常显示错误信息了,调试错误时也方便了很多。想我以前在调试时,不知道为什么不能显示出错信息时,只能郁闷的去看日志。。。。。。,那个痛苦啊.

如果运行asp页面出现下面的错误提示 。

出现:

Active Server Pages 错误 'ASP 0201' 。

无效的默认脚本语言 。

为此应用程序指定的默认脚本语言无效.

IIS出现Active Server Pages错误'ASP 0201'的修复工具 。

2007-05-12 19:08 。

IIS提示:

Active Server Pages 错误 'ASP 0201' 。

默认脚本语言无效 。

为该应用程序指定的默认脚本语言无效.

网上收集的方法有:

方法一 。

在运行里面regsvr32 /u scrrun.dll 。

regsvr32 scrrun.dll 。

另,如果还是不行,可以试试把iis卸载,然后把wwwroot目录删除,重新安装IIS. 。

方法二 。

1、删除“internet信息服务”, 。

2、重启机子,按F8进入“安全模式”, 。

3、在安全模式下将“C:\Inetpub”、“c:\windows\iis6.log”、“c:\windows\system32\inetsrv”这几个东西重命名.

4、重启机子,在正常模式下安装“internet信息服务”,安装完毕删除重命名文件.

5、如果还不能解决问题,打开“internet信息服务”,“重新启动IIS”.

方法三 。

( 这个实践过 OK!) 。

1、单击开始,指向程序,指向管理工具,然后单击 Internet 信息服务.

2、在控制台树中,单击默认 Web 站点。在显示窗格中,右键单击 默认 Web 站点,然后单击属性.

3、在目录安全性选项卡的匿名访问和身份验证控制中,单击编辑.

4、在身份验证方法属性页中,单击去掉匿名访问的勾.

==================== 。

这是一个相当普通的asp错误,一般是由以下原因造成:

在我们使用多种方式去解决这个问题之前,让我们看一下这个错误本身. 。

像完整的错误消息?任何一个可能导致这个问题的原因都会使我们得到如下消息:

Active Server Pages 错误 'ASP 0201' 。

错误无效的默认脚本语言 。

该应用程序地应的默认脚本语言无效 。

这错误通常是由IIS不识别的"不支持的脚本语言"引起的.现在怎么修复它呢?

尝试以下步骤:

1.确认在IIS中定义了合适的脚本语言.(进入IIS管理-选中站点-属性-主目录-配置-选项-默认ASP语言),确认默认ASP语言设置为 VBscrīpt(默认)或Jscrīpt(如果你更喜欢Javascrīpt脚本) 。

2.注意如果你的代码中首行含有<%Language="language"%>将覆盖上边的设置,所以仔细检查以保证你没有拼写错误.它应该是<%Language="VBscrīpt"%> 。

3.有时,脚本引挚不完整的DLL注册也会造成这个问题,请下载最新版的脚本引挚试试.

4.现在,我们需要确认在安装脚本引挚时没有注册某些DLL文件,例如,你可以按以下方式去尝试注册DLL: regsvr32 %windir%\system32\VBscrīpt.dll regsvr32 %windir%\system32\Jscrīpt.dll regsvr32 %windir%\system32\Inetsrv\Asp.dll 。

5.继续,如果你到此还没有解决这个问题,那看起来像是许可权引起了该问题. 。

例如:使匿名用户访问网站的 iusr_计算机名 这个用户没有相关DLL的读权限,可以尝试将(4)中的DLL文件给匿名用户赋予读取权限. 。

6.下一步,如果你还是看到同样的错误,你需要尝试按另外的步骤以确保相关的权限正确.参考以下文件:

IIS 4 - IIS 4所需要的用户和NTFS权限(http://support.microsoft.com/?id=187506)IIS 5 - 怎样为IIS5设置所需要的用户及NTFS权限(http://support.microsoft.com/?id=271071)IIS 6 - IIS6.0默认的用户及NTFS权限(http://support.microsoft.com/?id=812614) 。

7.如果你严格按照上边的步骤来做,应该不会再看到这个错误,除非你在上边的步骤中遗忘了某些配置.你可以临时将 iusr_计算机名 这个用户加入本地管理员组.注意,这只是为了查找问题,当问题解决后你绝对不能将匿名用户加入管理员组. 。

如果加入管理员组后问题已经解决.可以肯定这是因为权限问题,请按上边的步骤再次检查权限设置.如果还是没有解决,请将匿名用户从管理员组删除后再请教其它相关专业技术人员. 。

如果还是无法解决问题。下这个软件运行 。

最后此篇关于ASP常见错误详解及解决方案小结的文章就讲到这里了,如果你想了解更多关于ASP常见错误详解及解决方案小结的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com