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