Код, що обробляє події об'єктів Application і Session, можна помістити у файл Global.asax. Події Application будуть використовуватися для ініціалізації об'єктів і даних, які повинні бути доступними всім поточним сеансам Web-додатка. Події Session служать для ініціалізації даних, які потрібно зберігати в межах одного сеансу, не роблячи їх доступними іншим сеансам. У таблиці перераховані оброблювачі різних подій Application із вказівкою обставин, при яких вони викликаються.
Таблиця.... Оброблювачі подій Application
Ім'я | Коли викликається |
Application_Start | Перший користувач відкрив початкову сторінку Web-додатка |
Application_End | З додатком більше ніхто не працює |
Application_BeginRequest | На початку кожного запиту до сервера. Запит відбувається щоразу, коли браузер відкриває яку-небудь сторінку додатка |
Application_EndRequest | Наприкінці кожного запиту до сервера |
Session_Start | Новий користувач відкрив початкову сторінку додатка |
Session_End | Користувач покинув додаток, закривши браузер, або наступив тайм-аут по бездіяльності |
У додатках Web Forms сеанс (session) представляє унікальний екземпляр браузера. Якщо користувач запустить у себе на комп'ютері кілька екземплярів браузера і відкриє в кожному з них сторінки Web-додатка, для кожного екземпляра браузера буде створений окремий сеанс.
|
|
Щоб побачити події Application і Session у дії, додайте у файл Global.asax проекту Web Forms наступний код:
Protected void Application_Start(Object sender, EventArgs e)
{
// Оголосити змінні станів Application
Application["AppCount"] = 0;
Application["SessCount"] = 0;
// Зареєструвати запуск додатка.
Application["AppCount"] = (int)Application["AppCount"] + 1;
}
Protected void Session_Start(Object sender, EventArgs e)
{
// Підрахувати сеанси
Application["SessCount"] = (int)Application["SessCount"] + 1;
// Показати число екземплярів додатка.
Response.Write("Number of applications: " + Application["AppCount"] + "<br>");
// Показати число сеансів.
Response.Write("Number of sessions: " + Application["SessCount"] + "<br>");
}