gpt4 book ai didi

.net - 经典ASP中的自定义错误处理

转载 作者:行者123 更新时间:2023-12-03 07:44:22 24 4
gpt4 key购买 nike

我的主要目的:为应用程序添加一个错误处理程序通用页面。

我的应用程序使用Application Pool .Net v 4.5 Classic在Classic ASP和ASP.net上运行。使用CustomErrors,我可以使用以下方式处理.net页面的错误:

<customErrors allowNestedErrors="true" defaultRedirect="~/ErrorPage.aspx" mode="On">
<error statusCode="404" redirect="~/ErrorPage.aspx?msg=404" />
<error statusCode="500" redirect="~/ErrorPage.aspx?msg=500" />
</customErrors>

使用以下链接,我试图为ASP页添加自定义错误处理程序
https://msdn.microsoft.com/en-gb/library/ms524942.aspx

https://msdn.microsoft.com/en-us/library/ms525983(v=vs.90).aspx

我的主要目的是处理VbScript运行时/语法错误500.100,所以我已经更新了
web.config中的HttpErrors节点为:
<httpErrors errorMode="Custom">
<error statusCode="500" subStatusCode="100" path="~/frmErrorPage.asp" responseMode="Redirect" />
</httpErrors>

我在应用程序的根文件夹中有ASP错误处理程序页面:frmErrorPage.asp。
码:
<%@ Language=VBScript %>
<% Option Explicit %>
<% Response.CacheControl = "no-cache" %>
<% Response.AddHeader "Pragma", "no-cache" %>
<% Response.Expires = -1 %>

<% ' VI 6.0 Scripting Object Model Enabled %>
<!--#include file="_ScriptLibrary/pm.asp"-->
<script ID="serverEventHandlersVBS" LANGUAGE="vbscript" RUNAT="Server">

dim objASPError

Sub thisPage_onenter()

ShowErrorInformation()

end sub

Function ShowErrorInformation()
On Error Resume Next
Set objASPError = Server.GetLastError
Response.Write Server.HTMLEncode(objASPError.Category)
If Len(CStr(objASPError.ASPCode)) > 0 Then
Response.Write Server.HTMLEncode(", " & objASPError.ASPCode)
End If
Response.Write Server.HTMLEncode(" (0x" & Hex(objASPError.Number) & ")" ) & "<br>"
If Len(CStr(objASPError.ASPDescription)) > 0 Then
Response.Write Server.HTMLEncode(objASPError.ASPDescription) & "<br>"
ElseIf Len(CStr(objASPError.Description)) > 0 Then
Response.Write Server.HTMLEncode(objASPError.Description) & "<br>"
End If
end function

</script>

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>

<LINK REL="stylesheet" TYPE="text/css" HREF="_Themes/expeditn/THEME.CSS" VI6.0THEME="Expedition">
<LINK REL="stylesheet" TYPE="text/css" HREF="_Themes/expeditn/GRAPH0.CSS" VI6.0THEME="Expedition">
<LINK REL="stylesheet" TYPE="text/css" HREF="_Themes/expeditn/COLOR0.CSS" VI6.0THEME="Expedition">
<LINK REL="stylesheet" TYPE="text/css" HREF="_Themes/expeditn/CUSTOM.CSS" VI6.0THEME="Expedition">

</HEAD>
<BODY onload="return window_onload()">

</BODY>
</HTML>

这对我不起作用,我尝试了其他变体但没有成功。

最佳答案

在ASP Classic中创建自己的方法/函数,并通过行号,页面名称,错误说明传递必需的参数,并发送错误电子邮件通知,这是您在PROD Evn中工作。

例如
调用handleError(strScreenName,strScriptName,strFunctionName,err.number,err.Description,“”)

函数handleError
设置objASPError = Server.GetLastError
'创建自己的逻辑
结束功能

关于.net - 经典ASP中的自定义错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44540614/

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