Как предлагается в другом месте, я Я использую redirectMode = ResponseRewrite в моей настраиваемой конфигурации ошибок, чтобы моя настраиваемая страница ошибок могла получить доступ к информации об исключении. Некоторое время это работало как чары.
При добавлении некоторых дополнительных функций типа «помочь пользователю восстановиться после ошибки» нам понадобится часть информации, которая ранее хранилась в Session. При реализации этого я обнаружил, что различные пути к сеансу заканчиваются нулевым значением, когда redirectMode = ResponseRewrite, но все они заполняются, когда redirectMode = ResponseRedirect (или не определен).
Кто-нибудь знает почему? Кажется странным, что нам пришлось бы выбирать между наличием информации об исключении (ResponseRewrite) или наличием сеанса (ResponseRedirect).
В статье MSDN о расширенной настраиваемой обработке ошибок говорится, что сеанс только доступен, когда метод передачи управления - Server.Transfer, что я предполагал, что ResponseRewrite используется под капотом. Очевидно, это не так.