我使用 Application_Error 事件来捕获和记录我的应用程序中的错误。记录错误,然后显示友好的错误屏幕:
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
Dim ex As New Exception( _
String.Format("Error on page: '{0}'.", HttpContext.Current.Request.Url), _
Server.GetLastError())
Dim uid As Guid = Log.FatalError(ex)
Server.Transfer(String.Concat("~\\GlobalError.aspx?error=", uid))
End Sub
在我的 web.config 中,我有:
<customErrors mode="On" defaultRedirect="GlobalError.aspx">
<error statusCode="404" redirect="PageNotFound.aspx" />
</customErrors>
每当用户尝试加载不存在的页面时,他们会得到 GlobalError.aspx 页面,而不是 PageNotFound.aspx 页面。我查看了 Application_Error 事件,发现 Response StatusCode 是 200,而 Server 的最后一个错误是“找不到页面 'foo.aspx'”。
我需要做什么才能使其正常工作?