Я исследую проблему, которая возникает у нас с IIS 7, работающим в интегрированном режиме.У нас есть несколько приложений, работающих в .net 3.5.Стандартный способ, которым мы всегда ловили и обрабатывали необработанные исключения, - это использование метода Application_Error в Global.asax (в этом случае необработанное исключение - это исключение HttpException, которое создается, когда делается запрос на несуществующую страницу aspx.).
Внутри Application_Error мы используем нашу пользовательскую обработку ошибок, чтобы записать ошибку в базу данных, отправить электронное сообщение с предупреждением, а затем перенаправить на указанную страницу ошибки.Регистрация ошибок и оповещение по электронной почте работает как положено.Перенаправление не происходит.
Я использовал Fiddler для просмотра запроса / ответа, и я получаю HTTP 302 на страницу, совершенно отличную от той, что есть в моем разделе customErrors.
Почемуне работает Response.Redirect в Application_Error?
Вот мой код:
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
Dim ex As System.Exception = Server.GetLastError
Server.ClearError()
If Not (TypeOf (ex) Is HttpException) Then
//Run our internal error handling here
Else
Dim httpEx As HttpException = CType(ex, HttpException)
Response.Clear()
Response.StatusCode = httpEx.GetHttpCode()
Response.TrySkipIisCustomErrors = True
Server.Transfer("../Error.htm")
End If
End Sub
Это работает нормально, когда я пытаюсь посетить страницу aspx, которая не существует.Однако это не работает для статических страниц.
Я пробовал так много вариантов, что этот код в настоящее время выполняется без раздела customErrors или httpErrors.