Как предлагается в другом месте, я использую redirectMode = ResponseRewrite в моей настраиваемой конфигурации ошибок, поэтому моя страница пользовательских ошибок может получить доступ к информации об исключении. Это сработало как прелесть в течение некоторого времени.
При добавлении некоторой дополнительной функции "помочь пользователю восстановить из ошибки" нам нужна часть информации, которая ранее была сохранена в сеансе. При реализации этого я обнаружил, что различные возможности сеанса заканчиваются в null, когда redirectMode = ResponseRewrite, но все они заполняются, когда redirectMode = ResponseRedirect (или не определен).
Кто-нибудь знает почему? Кажется странным, что нам придется выбирать между информацией об исключении (ResponseRewrite) или сеансом (ResponseRedirect).
статья MSDN об обработке Rich Custom Error говорит мне, что сеанс доступен только в том случае, когда метод управления передачей является Server.Transfer, который что я предположил, что ResponseRewrite используется под капотом. Очевидно, это не так.