.Net Application_Error - PullRequest
       27

.Net Application_Error

0 голосов
/ 20 сентября 2011

В Global.asax у меня есть код в обработчике Application_Error, который хранит сообщение об ошибке в HttpRuntime.Cache, регистрирует ошибку в файле журнала приложения и затем передает пользователя на страницу Error.aspx для отображения сообщения на веб-сайте. шаблон / тема (путем извлечения его из HttpRuntime.Cache).

Я хочу знать, есть ли хороший способ управления контентом HttpRuntime.Cache.

В настоящее время я устанавливаю значение HttpRuntime.Cache с ключом, который определен в глобально доступном файле констант, а затем явно удаляю его в коде Error.aspx позади.

Есть ли более разумный способ убедиться, что HttpRuntime.Cache очищен должным образом после завершения обработки ошибок?

Абстрагироваться от контекста:

MethodA устанавливает некоторые значения в центральном хранилище Управление передается в MethodB, который использует значения из центрального хранилища Только после успешного чтения значений MethodB должен очистить значения из хранилища

Ограничение: управление не может быть возвращено методу А. После завершения MethodB программа завершается.

1 Ответ

0 голосов
/ 20 сентября 2011

ИМХО вы на правильном пути.

В прошлом я использовал DTO (объект передачи данных, легкий объект данных), который используется для хранения информации об исключении и хранится в сеансе. Код, который перехватывает ошибку и вызывает перенаправление на страницу ошибки, также устанавливает в DTO флаг, указывающий, можно ли исправить ошибку, и если это так, он также сохраняет URL-адрес в DTO - это означает, что страница ошибки может отобразить ссылку, по которой пользователь может щелкнуть, чтобы вернуться туда, где они были прерваны (вы контролируете ссылку и все, что находится на ее конце, так что вы можете отправить их обратно туда, куда вам нравится в вашем приложении, или воссоздать столько, сколько хотите, чтобы они продолжили).

Помните, что Cache является глобальным, поэтому возможно, что вы можете перезаписать информацию об исключениях одного пользователя другим пользователем.

...