Сохранение содержимого ApplicationState в ASP.Net (MVC)
У меня есть внутреннее приложение, используемое для редактирования файлов XML на диске. Файлы XML загружаются в объектную модель, которая хранится в ApplicationState.
Мне нужно сохранить эти данные. Один вариант - делать это каждый раз, когда пользователь изменяет некоторые данные. Однако, это кажется немного неэффективным - запись данных на диск каждый раз, когда вносятся изменения.
Вместо этого можно ли получать уведомления всякий раз, когда пользователь закрывает свой браузер, а также непосредственно перед выходом веб-сервера? Таким образом, данные будут сохраняться каждый раз, когда завершается сеанс, плюс когда компьютер выключается и т. Д. Я думал, что Application_End(), Application_Error() и Session_End() в Global.asax обеспечат это, но эти методы не кажется, называется.
1 ответ
Session_End должен быть вызван.
На какой версии IIS вы работаете или размещаетесь на сервере разработки Visual Studio?
Шаги, чтобы получить Session_End для запуска:
Создать новый веб-сайт в VS 2008
Отредактируйте web.config:
добавлять
<sessionState mode="InProc" cookieless="true" timeout="1"/>
в<system.web>
Добавьте файл Global.asax с кодом, показанным ниже.
void Session_End(object sender, EventArgs e)
{
Console.WriteLine( "Session_End" );
}
Установите точку останова на
Console.WriteLine
вызов.Нажмите F5 и увидите загрузку страницы в IE или Firefox.
Подождите 1 минуту или около того.
Точка останова должна быть выделена красным цветом в IDE.