Global.asax Обработка ошибок: Причуды server.transfer - PullRequest
1 голос
/ 01 сентября 2010

В моем global.asax я проверяю 404 и перехожу на страницу с ошибкой 404, как показано ниже:

    If HTTPExceptionInstance.GetHttpCode = 404 Then

        Server.ClearError()

        Response.TrySkipIisCustomErrors = True
        Response.Status = "404 Not Found"

        Server.Transfer("~/Invalid-Page.aspx")

    End If

Проблема в том, что мой Invalid-page.aspx использует некоторый код сеанса (Session ("somevariable")), который выдает исключение "Состояние сеанса может использоваться, только если установлен параметр enableSessionState в значение true, либо в файле конфигурации, либо в директиве Page. ", потому что я использую сервер.

Если я использую Response.Redirect, возникает проблема no . Однако это будет означать, что заголовок страницы с ошибкой равен 200, а не 404.

Каков наилучший обходной путь для этого?

Ответы [ 2 ]

3 голосов
/ 02 сентября 2010

Weird!Server.TransferRequest делает именно то, что я хочу, не теряя состояния сеанса!

0 голосов
/ 01 сентября 2010

Проверьте, установлено ли для EnableSessionState значение true в директиве страницы Invalid.aspx

...