Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литвинов / Лабораторна робота 3.print.doc
Скачиваний:
25
Добавлен:
23.03.2015
Размер:
1.69 Mб
Скачать

Властивість EnableSession

Оскільки web-служби ASP .NET (класи, одержані з простору імен System.Web.Services.WebService) існують в контексті додатку ASP .NET, вони мають доступ до об'єктів Application і Session цього додатку. Додаток ASP .NET включає тільки один об'єкт Application, отже, воно здатне підтримувати безліч об'єктів сеансу, призначених для зберігання даних різних клієнтів. За умовчанням такий механізм управління станом відключений; активізувати його можна шляхом привласнення властивості EnableSession значення true. Використовування даного механізму може понизити продуктивність, тому включати його слід лише при необхідності.

Якщо механізм управління сеансами запущений, сервер управляє станом клієнтів за допомогою унікальних об'єктів HttpSessionState. При першій взаємодії користувача з сервером кожному об'єкту Session призначається унікальний ідентифікатор. У разі подальших взаємодій клієнт повинен надати серверу свій унікальний ідентифікатор для витягання всіх клієнтських даних, збережених в попередньому сеансі. Унікальний ідентифікатор може зберігатися в cookie-файлі на комп'ютері клієнта або поміщатися в URL-адресу. У типовому доступному через браузер додатку ASP .NET така система управління станом працює «за кулісами». А якщо в web-браузер включена підтримка cookie-файлів, вони автоматично надаватимуться серверу по відповідному запиту. Оскільки web-служби не можуть одержувати cookie-файли аналогічним чином, то при кожному виклику web-служби вам доведеться указувати cookie-файл програмно.

Властивість CacheDuration

Завдяки використанню кешування в web-службах підвищується їх масштабованість і продуктивність. Простий спосіб реалізувати систему кешування полягає в застосуванні властивості CacheDuration атрибуту WebMethod. Такий тип кешування називається кешуванням результатів і в середовищі .NET виконується шляхом збереження на наперед встановлений час відповідних пар запитів і відповідей в кеш-таблиці, яка знаходиться в пам'яті. Протягом цього часу на будь-який поступаючий запит, співпадаючий із запитом, що вже є в кеші, сервер видає кешовану відповідь. Властивість CacheDuration служить для задання кількості секунд (значення цілого типу), впродовж яких пара запит-відповідь зберігатиметься в кеші. За умовчанням це значення рівне 0, тобто відповіді не кешується.

Механізм кешування часто виявляється ідеальним засобом для web-методів, які обробляють запити, інтенсивно використовуючі процесор, або інші складні запити, що вимагають незначної зміни раніше одержаних результатів. До числа подібних web-методів, наприклад, відноситься метод, який запитує з бази даних щодня змінні заголовки новин. У вказаному випадку для зниження кількості звернень до бази даних можна встановити властивість CacheDuration цього методу рівним п'яти або більш хвилинам. Оскільки система кешування грунтується на парі запит-відповідь, то у разі, коли діапазон вхідних параметрів методу невеликий, певні ресурси серверу використовуються в багатьох аналогічних ситуаціях. Якщо діапазон вхідних параметрів великий (тобто запит включає безліч рядків), кеш кеш-таблиці може вирости настільки, що займе великий об'єм пам'яті, а це, у свою чергу, може привести до втрати важливих даних. Ситуація посилюється, якщо об'єм вихідних даних, що зберігаються в кеші, також великий.