ASP 0115 错误,任何意见,经验,建议,统统欢迎!!

KnowLittle 2002-05-21 03:30:08
Active Server Pages 错误 'ASP 0115'

意外错误

/webbus/login.asp

外部对象中发生一个可捕捉的错误(C0000005)。脚本无法继续执行。

-----------------------------------------------------------------
这是我的login.asp的报错,
现在很讨厌的地方在于:我无法定位错误。
因为错误出现是无规律的。
有时候有,有时候没有。在有的机器较频繁,有的机器就很少出现。

各位看官有何高见?
...全文
462 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsidiot 2002-05-24
  • 打赏
  • 举报
回复
我看了
好像没有什么收获阿
只是一个dll的调用的冲突而已
KnowLittle 2002-05-24
  • 打赏
  • 举报
回复
谢谢楼上的,我试试看
xjd5555 2002-05-22
  • 打赏
  • 举报
回复
看看
MeXP 2002-05-22
  • 打赏
  • 举报
回复
你应该去过微软网站了吧,那里好像有
KnowLittle 2002-05-22
  • 打赏
  • 举报
回复
to: tonny
这篇文章我也看到过,但是有些地方不太懂:6什么意思?
另外:
1,2,4,7都可以排除
3和5我不是太了解,因为我的com 是前人栽树我乘凉的,我对线程安全没什么概念。

再次谢谢大家关注,但是现在我的最麻烦的问题在于我很难再现错误。导致我调试很困难。

popcode 2002-05-22
  • 打赏
  • 举报
回复
总的看法:
ASP Error 0115意味着你的asp中的一个组件调用失败,并且同时ASP
不能够从这个失败中获取更多的错误信息了。

Error 'ASP 0115'
Unexpected error
/scripts/<filename>
A trappable error occurred in an external object. The script cannot continue running.


ASP Error '0115'对于ASP开发者来说是一个噩梦,这个错误意味着
ASP使用的一个组件已经Crash掉了。最致命的是你还不能够得到更多的更详细的出错信息。
所以这有很多的可能会导致这个错误,从而也导致了有很多不同的解决办法。
下面是几个比较经典的解决方案:
(一) (对于IIS 3/4来说):
服务端程序的安装顺序:
有的时候当你在服务端按照错误的顺序安装了新的软件后,一些版本新的DLL被旧版本的给覆盖了,
可气的是,你通常都不被通知这些关键的动态连接库被覆盖了.在这些出错中,你尤其应该注意的是当你
安装了任何一个涉及到VB5的数据组件时(dll,ocx),ADO的DLL并没有被VB5的安装程序中带的旧版本给覆盖,.
VB5的安装程序而是将旧版本的dll安装到windows\system 或则 winnt\system32目录中,并且在这些目录中注册了
这些dll(它们将在你的注册表中替换掉你的新版本dll在IIS中的的注册默认目录位置),
要解决由于VB5带来的麻烦就是重新再注册你原来的dll。
(二) 一个安装服务端程序时的推荐顺序:
Windows NT 4.0
NT 4.0 Option Pack (IIS 4等)
NT 4.0 SP4
SQL Server 7.0
MDAC 2.0 SP2
IE 5.0
(三) MDAC版本导致的错误:
安装最新的MDAC版本能够帮助你解决好多莫名其妙的ASP 0115错误。最新的版本可以去微软的站点下载。
(四) 由于匿名帐号引起的安全问题:
匿名帐号的权限决定了你的ASP中需要访问到的组件中某些函数的正确性.
a) 如果没有给用户相应的访问权限,ADO的DLL将抱错:'0115' error.
b) 确信你的匿名帐号能够访问如下目录:System32目录,InetPub目录,你的RDBMS安装的目录以及ADO DLL所在的目录
(五)提交Form时出现的错误
这个错误请参考MSDN中的文章id为Q173741
(六)糟糕的代码习惯导致的错误:
有些时候'0115'是由于你糟糕的代码导致的(不过也许同样的代码由于运气不同,在不同的机器上不会发生错误)
a) 当一个页面提交一个Form给本身时,没有给该form的name属性赋值
b) 在编写dll时没有声明类型本来为variant的变量为variant
c) 在调用一个不存在的存储过程时,或则调用该存储过程的参数传递错误。
(六)对于使用IIS 3的编程人而言:
a)Session 对象导致的出错:
请参考MSDN中的文章KB Article: Q177036
b)ADO 2.0:
在IIS3中安装了ADO 2.0导致出错,请参考MSDN中的文章:KB Article: Q193310

KnowLittle 2002-05-22
  • 打赏
  • 举报
回复
哪位还有什么具体意见吗?
tonnycncn 2002-05-21
  • 打赏
  • 举报
回复
ASP 0115 Error的解决方案
"ASP 0115"是什么错误?

如果你的ASP报告0115 error,意思是“我不知道是什么原因引起这个错误”
0115 error引起的原因一般是由外部因素引起的。
在下面我列出了一些可能引起报0115 error的东东,并且也提出了一些供参考的解决办法:

1.文件或注册键的权限和证明引起
如果系统授权用户对一些自建组件,系统动态链接库(DLL)和注册键的文件没有足够的权限,就可能引起这样的错误。
若是你认为是注册表的权限设置的问题,那可以用Regedt32.exe检查注册键的权限。尤其是ODBC, Jet, ADO和其他可能引
起这个问题的主键。如果你还有一台能正常运行它的机器,你还可以试着比较这些主键权限的不同。

先要断定是不是权限的问题,有一个好的测试办法就是:你可以在管理员组中添加一个临时的匿名登录帐号
(IUSR_<machine_name>),给这个添加帐号管理员的权限。如果可以正常运行的话,那就是你的权限的问题了。
注意:当你调试完毕,务必记得把IUSR_<machine_name>帐号清除,免得不法分子有机可乘。

2.DLL注册错误或DLL版本不符引起
如果你用VB开发Web应用程序,可以再生成一个从属文件来比较DLL的版本。

3.从组件返回的没有处理的错误引起

4.表单(Form)没有命名的控件引起
比如:<input type="Text" name="textinput">写成<input type="Text">

5.在多线程环境下使用没有线程安全的组件

6.使用了ASP dll version 1.23.09以前版本的Session

7.在IIS3.0上使用数据访问组件(MDAC)
如果调用了存储过程(SP),有可能是这些原因引起0115错误:
I.SP参数没有值导致0115 error.
II.不正确参数值导致0115 error.
III.在SP使用了SQL保留字(如:SECTION)

leiyang 2002-05-21
  • 打赏
  • 举报
回复
學習.
MeXP 2002-05-21
  • 打赏
  • 举报
回复
God
他不是不会调试,而是com组件用interdev跟不进去
xxjmz_78 2002-05-21
  • 打赏
  • 举报
回复
你说你不能定位错误
是不是不能debug呀
这个我用过你现在的状态根本不是在debug状态,也就是说你根本没配置好不能实现debug功能。
要debug除了要装了iis外还有许多东西的,你首先要装office2000,至于为什么我不知道。
然后用Microsoft Visual Studio的安装盘里有个图标跟Visual InterDev6.0图标一样的东东的setup,运行它在弹出的对话框里选launch backoffice installation,装office就是为了这个。点击install一路安装过去,提示你插入第2张盘,选第5现,然后一路next到finish即可。
这才完成了一步,然后到msdn搜索“debug”在microsft Visual InterDev6.0 debugging里有一项 setting up local server debugging 然后按照它的提示一步一步设置就ok了
然后你再试试debug
spgoal 2002-05-21
  • 打赏
  • 举报
回复
调用了组件??
BrightEye 2002-05-21
  • 打赏
  • 举报
回复
看来是代码的问题,你不调用组件呢?
KnowLittle 2002-05-21
  • 打赏
  • 举报
回复
另外,的确。这个asp调用了dll,是用vc atl开发的com组件。
KnowLittle 2002-05-21
  • 打赏
  • 举报
回复
谢谢大家!:)
to: beyond_xiruo(希偌)
这个网址是什么?

to: mexp(秦汉风)
这个我想到了,但是现在非常讨厌的在于我不知道我修改(或者隔离)之后错误是有还是无, 因为错误的出现 真的是没有规律。 尤其在我的开发站点上,很少出现。但是在客户的机器上,却频率较高。 而后者我却不能方便的调试。
MeXP 2002-05-21
  • 打赏
  • 举报
回复
ASP 0115—访问冲突

访问冲突主要是由堆和堆栈故障引起的。

如果您进行这样一些操作,如分配一块内存并试图在该内存块之外执行读写操作,就会引起访问冲突。
大多数访问冲突发生在当 ASP 页试图访问一个组件,而这个组件又正在试图做错误的事情时。为简单起见,我们假定您已将某个组件安装为库程序包。当您试图访问使用这个组件的一个 ASP 页时,ASP 页可能返回以下信息:

error 'ASP 0115'
Unexpected error
/<Web Server Name>/<ASP file name>.asp
A trappable error occurred in an external object. The script cannot continue running.

这个错误消息指出在某个特定的 ASP 页中有一个错误,它是由在某个外部对象中产生一个异常引起的。它表明您试图在 ASP 页中访问一个失败的组件。您可以这样来进一步隔离问题,在 ASP 页中删除对任何组件的所有引用,然后再逐个将它们添加进来,直到找到故障原因为止。

如果隔离的过程过于冗长乏味,或者您没有获得一个指明 ASP 页名的清晰错误信息,则可以将 WinDBG、User Mode Process Dump 或 IIS Exception Monitor 连接到 inetinfo,并开始调试。


hqzc 2002-05-21
  • 打赏
  • 举报
回复
有一个办法,一行一行的代码注释掉,看问题出在哪一行。
lanying 2002-05-21
  • 打赏
  • 举报
回复
gz
希偌 2002-05-21
  • 打赏
  • 举报
回复
在你的CDO应用程序中避免可怕的ASP 0115错误。
有时,当用协作数据对象(CDO)库来开发Web应用程序时,开发者有可能会遇到一些怪异的错误,如在一个外部对象中可能会预想不到地发生ASP 0115错误。当多个用户试图访问他们的应用程序时,或者用户的Active Server Pages话路超时时,开发者经常会遇到这种错误。开发者能够解决这个问题的办法是确保在他们的Global.ASA文件中包含了正确的代码,以使得当一个话路被抛弃或者超时时,能够适当地销毁CDO对象。完成这个工作最容易的方法是把Authenticated或者Anonymous范例应用程序作为CDO应用程序的开始点。你可以从 Microsoft Exchange Sample Apps WebSite(Microsoft Exchange范例应用程序网站)下载这些范例应用程序
希偌 2002-05-21
  • 打赏
  • 举报
回复
在你的CDO应用程序中避免可怕的ASP 0115错误。
有时,当用协作数据对象(CDO)库来开发Web应用程序时,开发者有可能会遇到一些怪异的错误,如在一个外部对象中可能会预想不到地发生ASP 0115错误。当多个用户试图访问他们的应用程序时,或者用户的Active Server Pages话路超时时,开发者经常会遇到这种错误。开发者能够解决这个问题的办法是确保在他们的Global.ASA文件中包含了正确的代码,以使得当一个话路被抛弃或者超时时,能够适当地销毁CDO对象。完成这个工作最容易的方法是把Authenticated或者Anonymous范例应用程序作为CDO应用程序的开始点。你可以从 Microsoft Exchange Sample Apps WebSite(Microsoft Exchange范例应用程序网站)下载这些范例应用程序
加载更多回复(2)

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧