Я использую событие 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, в то время как последней ошибкой сервера была «Страница 'foo.aspx' не найдена».
Что мне нужно сделать, чтобы это работало правильно?