【问题标题】:Server object error 'ASP 0177 : c0000005'服务器对象错误“ASP 0177:c0000005”
【发布时间】:2012-03-08 03:41:18
【问题描述】:

完整的错误:

 The CreateObject of '(null)' caused exception C0000005.
 Server object error 'ASP 0177 : c0000005'
 Server.CreateObject Failed
 /get.asp, line 35

get.asp - 第 35 行:

 Response.Status = "500 Internal Server Error"
 set objErr=Server.GetLastError()

 Col = objErr.Column
 Cat = objErr.Category
 Desc = objErr.Description
 Fle = objErr.File
 Lne = objErr.Line
 Num = objErr.Number
 Src = objErr.Source
 ASPC = objErr.ASPCode
 ASPD = objErr.ASPDescription

 set SQLCOMM = Server.CreateObject("ADODB.Command")  //line 35
 SQLCOMM.ActiveConnection = DBConn_Str
 SQLCOMM.CommandText = SQLq
 SQLCOMM.CommandType = 1
 SQLCOMM.CommandTimeout = 0
 SQLCOMM.Prepared = true
 SQLCOMM.Execute()
 set SQLCOMM=Nothing

这个脚本通常可以工作,但由于某些奇怪的原因,它最近时不时地给出这个错误。我最近做的事情是在 MsSql DB 中创建更多的表/列索引,我不确定为什么现在会发生这种情况。有人知道为什么吗?

【问题讨论】:

  • this answer
  • 首先是什么错误将您带到此页面?
  • @ShadowWizard 我不知道,因为GetLastError() 没有把它拉起来。
  • 但这意味着其他页面导致错误,因此您被重定向到错误页面。无论如何 - 如果您尝试写入纯文本文件,它会起作用吗?

标签: mysql asp-classic


【解决方案1】:

该错误是 Windows 访问被拒绝错误。然而,令人不安的是,它是一个异常 C00000005,而不是一个错误 80070005。介于CreateObject 和完成初始化ADODB.Command 之间的某个访问被拒绝异常是没有被正常方法捕捉到的被抚养长大。

此时代码中唯一被“访问”的是 ADODB.dll,但这不太可能是真正的权限问题。但是,如果您在该站点上使用 Windows 集成安全性,那么值得看看发生次数与使用该站点的用户之间是否存在关联。

【讨论】:

  • 这实际上是在自定义错误“500.100”使用的错误捕获脚本上运行的。我刚刚在上面发布了更多代码,通常当我收到错误时,我会一次收到几个实例,所以我在页面上收到多个相同的错误。所以这可能是这个错误发生的另一个原因,它使用'Server.GetLastError()',请看上面get.asp修改后的代码
  • 我感觉 Server.GetLastError() 以某种方式崩溃并导致脚本的其余部分以某种方式崩溃,我很困惑..
  • objErr 没有被关闭。一旦我将它设置为空,错误就没有发生过,同样的压力水平。我是个白痴;),我给了你最好的回答坚持..再次感谢安东尼!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-08
  • 2019-12-07
  • 2018-09-19
  • 2015-10-01
  • 2013-10-23
  • 2016-06-28
  • 2010-12-03
相关资源
最近更新 更多