我之前已经知道很多问题,但这个问题似乎与其他问题略有不同。
当我写一些糟糕的ASP代码时,例如:
Dim a = 7
我会收到一条详细的错误消息,告诉我我是个白痴。但是,如果出现运行时错误,例如
a = 0/0
该页面将立即完成。加载的页面仅显示错误之前写入的内容,并且(最重要的是)没有错误消息提示错误位置/错误
如何获取运行时错误消息?
我已按照this question
尝试将其放入web.config中<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" />
</system.webServer>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true"/>
</system.web>
但是没有区别。
我也尝试了this answer中的建议:
如果您无法更改IIS错误设置,那么只需将其设置为 asp-page打印错误。
在文件顶部,设置
On Error Resume Next
以允许 尽管有任何错误,asp脚本仍可继续执行。然后在您怀疑发生错误的可能位置或 就在页面底部;把这段代码。
IF Err.Number <> 0 THEN Response.Write "=========================================" & "<br />" Response.Write "Error description: " & Err.Description & "<br />" Response.Write "Source: " & Err.Source & "<br />" Response.Write "LineNumber: " & Err.Line & "<br />" Response.Write "=========================================" & "<br />" END IF
该解决方案的问题在于行号是空的,源只是&#34; Microsoft VBScript运行时错误&#34;并且ASPError的大多数其他属性都是空白的。 (描述有&#34;溢出&#34;除以0错误)。所以我仍然不知道错误的位置:(