Сеанс ASP <>

Общие сведения

Элемент <session> элемента задает параметры состояния сеанса <asp> Страницы active Server (ASP). Состояние сеанса — это средство, с помощью которого службы IIS 7 хранят сведения о каждом уникальном сеансе клиента. Например, если на веб-сайте есть приложение корзины, содержимое корзины каждого клиента может храниться в состоянии сеанса.

Для сохранения состояния сеанса ASP необходимы ресурсы памяти на сервере, а необходимый объем памяти зависит от объема информации, хранящееся в каждом сеансе. Чтобы упростить регулирование ресурсов, которые будут использоваться IIS 7, можно указать параметры для состояния сеанса. Например, атрибут max указывает максимальное количество сеансов для хранения, а атрибут timeout — длительность каждого сеанса ASP.

Если для приложений не требуется состояние сеанса, установка атрибута allowSessionState значения false приведет к отключению состояния сеанса ASP.

Совместимость

Версия Примечания
IIS 10.0 Элемент <session> не был изменен в IIS 10.0.
IIS 8,5 Элемент <session> не был изменен в IIS 8.5.
IIS 8,0 Элемент <session> не был изменен в IIS 8.0.
IIS 7,5 Элемент <session> не был изменен в IIS 7.5.
IIS 7.0 Элемент <session> элемента появился <asp> в IIS 7.0.
IIS 6,0 Элемент <session> заменяет следующие свойства метабазы IIS 6.0:
  • AspAllowSessionState
  • AspKeepSessionIDSecure
  • AspSessionMax
  • AspSessionTimeout

Настройка

Для поддержки и настройки приложений ASP на веб-сервере необходимо установить модуль ASP. Чтобы установить модуль ASP, выполните следующие действия.

Windows Server 2012 или Windows Server 2012 R2

  1. На панели задач щелкните Диспетчер сервера.
  2. В диспетчер сервера откройте меню Управление и выберите пункт Добавить роли и компоненты.
  3. В мастере добавления ролей и компонентов нажмите кнопку Далее. Выберите тип установки и нажмите кнопку Далее. Выберите целевой сервер и нажмите кнопку Далее.
  4. На странице Роли сервера разверните узел Веб-сервер (IIS),веб-сервер, узел Разработка приложений, а затем выберите ASP.
    Изображение области
  5. Если появится диалоговое окно Добавление компонентов, необходимых для ASP? , нажмите кнопку Добавить компоненты. (Эта страница отображается только в том случае, если вы еще не установили службу роли расширений ISAPI на сервере.)
  6. На странице Роли сервера нажмите кнопку Далее.
  7. На странице Выбор компонентов нажмите кнопку Далее.
  8. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  9. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

  1. На начальном экране переместите указатель в левый нижний угол, щелкните правой кнопкой мыши кнопку Пуск и выберите пункт панель управления.

  2. В панель управления щелкните Программы и компоненты, а затем — Включить или выключить компоненты Windows.

  3. Разверните узлы Службы IIS, Службы Интернета, Компоненты разработки приложений, а затем выберите ASP.
    Снимок экрана: страница

    Примечание

    Роль расширения ISAPI будет выбрана, если она еще не установлена.

  4. Нажмите кнопку ОК.

  5. Щелкните Закрыть.

Windows Server 2008 или Windows Server 2008 R2

  1. На панели задач нажмите кнопку Пуск, наведите указатель мыши на пункт Администрирование, а затем щелкните диспетчер сервера.
  2. В области иерархии диспетчер сервера разверните узел Роли, а затем щелкните Веб-сервер (IIS) .
  3. В области Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей.
  4. На странице Выбор служб ролеймастера добавления служб ролей выберите ASP.
    Снимок экрана: страница
  5. Если появится диалоговое окно Добавление служб ролей, необходимых для ASP , щелкните Добавить необходимые службы ролей. (Эта страница отображается только в том случае, если вы еще не установили службу роли расширений ISAPI на сервере.)
    Снимок экрана: диалоговое окно
  6. На странице Выбор служб ролей нажмите кнопку Далее.
  7. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  8. На странице Результаты нажмите кнопку Закрыть.

Windows Vista или Windows 7

  1. На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
  2. В панель управления щелкните Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узел Службы IIS, Затем — Службы Интернета, а затем Функции разработки приложений.
  4. Выберите ASP и нажмите кнопку ОК.
    Снимок экрана: страница

Инструкции

Настройка параметров состояния сеанса ASP для сайта или приложения

  1. Откройте диспетчер служб IIS.

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, инструменты, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем щелкните Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
      • Дважды щелкните элемент Администрирование, а затем дважды щелкните диспетчер служб IIS.
  2. В области Подключения разверните имя сервера, узел Сайты, а затем перейдите к веб-сайту или веб-приложению, которые требуется настроить.

  3. На домашней панели сайта или приложения дважды щелкните ЭЛЕМЕНТ ASP.
    Снимок экрана: домашняя панель приложения pf с выделенным элементом A S P.

  4. В области ASP разверните раздел Свойства сеанса и настройте нужные параметры.
    Изображение области

  5. Щелкните Применить в области Действия.

Конфигурация

Атрибуты

Атрибут Описание
allowSessionState Дополнительный логический атрибут.

Указывает, включено ли сохраняемость состояния сеанса для приложения ASP.

Значение по умолчанию — true.
keepSessionIdSecure Дополнительный логический атрибут.

Указывает, отправляется ли идентификатор сеанса в качестве защищенного файла cookie, если он назначается через безопасный канал сеанса.

Значение по умолчанию — true.
max Необязательный атрибут uint.

Указывает максимальное количество одновременных сеансов.

Значение по умолчанию — 4294967295.
timeout Необязательный атрибут timeSpan.

Указывает максимальный период времени (чч:мм:сс), в котором объект сеанса сохраняется после выполнения последнего запроса, связанного с объектом .

Значение по умолчанию — 00:20:00.

Дочерние элементы

Отсутствует.

Образец конфигурации

Следующий пример конфигурации включает состояние сеанса ASP, устанавливает максимальное число сеансов ASP в 1000, а время ожидания сеанса — 10 минут для веб-сайта по умолчанию.

<location path="Default Web Site">
   <system.webServer>
      <asp>
         <session allowSessionState="true" max="1000" timeout="00:10:00" />
      </asp>
   </system.webServer>
</location>

Пример кода

В следующих примерах кода включается состояние сеанса ASP, устанавливается максимальное число сеансов ASP в 1000, а время ожидания сеанса — 10 минут для веб-сайта по умолчанию.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/asp /session.allowSessionState:"True" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/asp /session.max:"1000" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/asp /session.timeout:"00:10:00" /commit:apphost

Примечание

При использовании AppCmd.exe для настройки этих параметров для параметра apphostфиксации необходимо задать значение . Это зафиксирует параметры конфигурации в соответствующем разделе расположения в файле ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection aspSection = config.GetSection("system.webServer/asp", "Default Web Site");

         ConfigurationElement sessionElement = aspSection.GetChildElement("session");
         sessionElement["allowSessionState"] = true;
         sessionElement["max"] = 1000;
         sessionElement["timeout"] = TimeSpan.Parse("00:10:00");

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim aspSection As ConfigurationSection = config.GetSection("system.webServer/asp", "Default Web Site")

      Dim sessionElement As ConfigurationElement = aspSection.GetChildElement("session")
      sessionElement("allowSessionState") = True
      sessionElement("max") = 1000
      sessionElement("timeout") = TimeSpan.Parse("00:10:00")

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST/Default Web Site");

var sessionElement = aspSection.ChildElements.Item("session");
sessionElement.Properties.Item("allowSessionState").Value = true;
sessionElement.Properties.Item("max").Value = 1000;
sessionElement.Properties.Item("timeout").Value = "00:10:00";

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST/Default Web Site")

Set sessionElement = aspSection.ChildElements.Item("session")
sessionElement.Properties.Item("allowSessionState").Value = True
sessionElement.Properties.Item("max").Value = 1000
sessionElement.Properties.Item("timeout").Value = "00:10:00"

adminManager.CommitChanges()