Asp net state service что это за служба и нужна ли она

Стандартные сервисы Windows XP

В Windows XP, которая пока что остаётся самой популярной операционной системой из всей линейки Windows, существует великое множество разнообразных встроенных в неё корпорацией Microsoft сервисов, также называемых службами. О том, для чего нужны некоторые из них, мы с вами сейчас поговорим.

Список будет довольно большим для любой системы, и, надо сказать, далеко не все службы в нём нужны каждому из пользователей. Собственно, для того, чтобы вы могли разобраться с тем, какие службы лично вы можете совершенно безболезненно для себя отключить, и предназначена эта статья.

.NET Runtime Optimization Service


Application Layer Gateway Service

Этот сервис нужен для обеспечения работы сторонних протоколов при доступе к Интернету через службу общего доступа или брандмауэр Windows. Он позволяет подключать системе плагины, реализующие поддержку каких-либо протоколов, которые не поддерживаются напрямую компонентами операционной системой. Эту службу отключать не стоит, в противном случае вы рискуете остаться без доступа в Интернет. Процесс, который физически представляет этот сервис, называется alg.exe. К сожалению, под эту службу очень любят маскироваться многие трояны, так что если вы встретите alg.exe где-то, кроме системных директорий Windows, такой файл с высокой вероятностью будет трояном.


Application Management


ASP.NET State Service

Если вы не разрабатываете программы с использованием ASP.NET, то этот сервис у вас должен быть отключен. Если он у вас включен, и вы всё же не разрабатываете таких программ, значит, у вас на компьютере стоит какая-то программа, которая в нём нуждается. Данный сервис предназначен для хранения объектов-сессий в отдельном процессе, не зависящем от процесса ASP.NET, для повышения стабильности работы ASP.NET-приложений.


Automatic Updates


Background Intelligent Transfer Service

Этот сервис достаточно полезен: его задача состоит в оптимизации использования канала подключения к Интернету. Именно поэтому в её названии встречается слово Intelligent. Если эта служба включена, то служба Automatic Updates будет продолжать загрузку после завершения пользовательского сеанса, что позволит быстрее установить все предлагаемые корпорацией Microsoft системные обновления. Тем не менее, если вы отключаете автоматическое обновление, то эта служба сама автоматом не отключается, и её можно отключить вручную.

Computer Browser

Слово «browser» в названии данного сервиса не должно вас обмануть: ничего общего с Internet Explorer´ом этот сервис в действительности не имеет. То есть имеет, но это родство такое дальнее, что их нельзя назвать даже троюродными братьями. На самом же деле сервис под названием Computer Browser должен собирать список компьютеров, присутствующих в сети, и выдавать его заинтересованным программам по первому же их требованию. В принципе, как видите, теоретически этот сервис, вроде как, и имеет пользу, однако на практике выясняется, что это не совсем так: архитектура современных локальных сетей допускает отключение сервиса Computer Browser на всех компьютерах, за исключением одного, называемого главным. Домашним пользователям, таким образом, можно и вовсе отключить этот сервис.


Indexing Service


COM+ System Application


Cryptographic Services


DCOM Server Process Launcher

Этот сервис был добавлен корпорацией Microsoft во второй сервис-пак к Windows XP, так что в системах, на которых он не установлен, вы этого сервиса не найдёте. Впрочем, думаю, такие системы сейчас сами по себе труднонаходимы. Функция этого сервиса заключается в запуске некоторых других сервисов и процессов, которые нужны для запуска определённых программ. Отлючать данную службу не рекомендуется, потому что без неё будут некорректно работать многие достаточно распространённые приложения.


DHCP Client

Источник

Aspnet state exe что это

Aspnet_state.exe – это исполняемый файл (программа) для Windows. Расширение имени файла .exe – это аббревиатура от англ. слова executable — исполнимый. Необходимо запускать исполняемые файлы от проверенных производителей программ, потому что исполняемые файлы могут потенциально изменить настройки компьютера или нанести вред вашему компьютеру. Бесплатный форум с информацией о файлах может помочь вам разобраться является ли aspnet_state.exe вирусом, трояном, программой-шпионом, рекламой, которую вы можете удалить, или файл принадлежит системе Windows или приложению, которому можно доверять.

Вот так, вы сможете исправить ошибки, связанные с aspnet_state.exe

Информация о файле aspnet_state.exe

Описание: aspnet_state.exe используется приложениями, которые опираются на стандарт программирования ASP.NET. Если у вас есть программы, использующие ASP.NET, вам не следует останавливать или удалять данный процесс. Иначе это может привести к неправильной работе приложения.

Важно: Некоторые вредоносные программы маскируют себя как aspnet_state.exe, особенно, если они расположены в каталоге c:windows или c:windowssystem32. Таким образом, вы должны проверить файл aspnet_state.exe на вашем ПК, чтобы убедиться, что это угроза. Мы рекомендуем Security Task Manager для проверки безопасности вашего компьютера.

Комментарий пользователя

Лучшие практики для исправления проблем с aspnet_state

Аккуратный и опрятный компьютер – это главное требование для избежания проблем с aspnet_state. Для этого требуется регулярная проверка компьютера на вирусы, очистка жесткого диска, используя cleanmgr и sfc /scannow, удаление программ, которые больше не нужны, проверка программ, которые запускаются при старте Windows (используя msconfig) и активация Автоматическое обновление Windows. Всегда помните о создании периодических бэкапов, или в крайнем случае о создании точек восстановления.

Если у вас актуальные проблемы, попробуйте вспомнить, что вы делали в последнее время, или последнюю программу, которую вы устанавливали перед тем, как появилась впервые проблема. Используйте команду resmon, чтобы определить процесс, который вызывает проблемы. Даже если у вас серьезные проблемы с компьютером, прежде чем переустанавливать Windows, лучше попробуйте восстановить целостность установки ОС или для Windows 8 и более поздних версий Windows выполнить команду DISM.exe /Online /Cleanup-image /Restorehealth. Это позволит восстановить операционную систему без потери данных.

Следующие программы могут вам помочь для анализа процесса aspnet_state.exe на вашем компьютере: Security Task Manager отображает все запущенные задания Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записей автозагрузки. Уникальная оценка рисков безопасности указывает на вероятность процесса быть потенциально опасным – шпионской программой, вирусом или трояном. Malwarebytes Anti-Malware определяет и удаляет бездействующие программы-шпионы, рекламное ПО, трояны, кейлоггеры, вредоносные программы и трекеры с вашего жесткого диска.

aspnet_state сканер

Asp net state service что это за служба и нужна ли она. Смотреть фото Asp net state service что это за служба и нужна ли она. Смотреть картинку Asp net state service что это за служба и нужна ли она. Картинка про Asp net state service что это за служба и нужна ли она. Фото Asp net state service что это за служба и нужна ли она

Security Task Manager показывает все запущенные сервисы Windows, включая внедренные скрытые приложения (например, мониторинг клавиатуры или браузера, авто вход). Уникальный рейтинг надежности указывает на вероятность того, что процесс потенциально может быть вредоносной программой-шпионом, кейлоггером или трояном.

Бесплатный aнтивирус находит и удаляет неактивные программы-шпионы, рекламу, трояны, кейлоггеры, вредоносные и следящие программы с вашего жесткого диска. Идеальное дополнение к Security Task Manager.

Reimage бесплатное сканирование, очистка, восстановление и оптимизация вашей системы.

Файл aspnet_state.exe из Microsoft Corporation является частью Microsoft (R) NET Framework. aspnet_state.exe, расположенный в c:WINDOWSServicePackFilesi386 с размером файла 32768.00 байт, версия файла 1.0.3705.6060, подпись 7F2A2B860919EBF78AF07A52C72B0F27.

В вашей системе запущено много процессов, которые потребляют ресурсы процессора и памяти. Некоторые из этих процессов, кажется, являются вредоносными файлами, атакующими ваш компьютер.
Чтобы исправить критические ошибки aspnet_state.exe,скачайте программу Asmwsoft PC Optimizer и установите ее на своем компьютере

1- Очистите мусорные файлы, чтобы исправить aspnet_state.exe, которое перестало работать из-за ошибки.

2- Очистите реестр, чтобы исправить aspnet_state.exe, которое перестало работать из-за ошибки.

Asp net state service что это за служба и нужна ли она. Смотреть фото Asp net state service что это за служба и нужна ли она. Смотреть картинку Asp net state service что это за служба и нужна ли она. Картинка про Asp net state service что это за служба и нужна ли она. Фото Asp net state service что это за служба и нужна ли она

3- Настройка Windows для исправления критических ошибок aspnet_state.exe:

Asp net state service что это за служба и нужна ли она. Смотреть фото Asp net state service что это за служба и нужна ли она. Смотреть картинку Asp net state service что это за служба и нужна ли она. Картинка про Asp net state service что это за служба и нужна ли она. Фото Asp net state service что это за служба и нужна ли она

Всего голосов ( 65 ), 29 говорят, что не будут удалять, а 36 говорят, что удалят его с компьютера.

Как вы поступите с файлом aspnet_state.exe?

Некоторые сообщения об ошибках, которые вы можете получить в связи с aspnet_state.exe файлом

(aspnet_state.exe) столкнулся с проблемой и должен быть закрыт. Просим прощения за неудобство.

(aspnet_state.exe) перестал работать.

aspnet_state.exe. Эта программа не отвечает.

(aspnet_state.exe) — Ошибка приложения: the instruction at 0xXXXXXX referenced memory error, the memory could not be read. Нажмитие OK, чтобы завершить программу.

(aspnet_state.exe) не является ошибкой действительного windows-приложения.

(aspnet_state.exe) отсутствует или не обнаружен.

ASPNET_STATE.EXE

Asp net state service что это за служба и нужна ли она. Смотреть фото Asp net state service что это за служба и нужна ли она. Смотреть картинку Asp net state service что это за служба и нужна ли она. Картинка про Asp net state service что это за служба и нужна ли она. Фото Asp net state service что это за служба и нужна ли она

Проверьте процессы, запущенные на вашем ПК, используя базу данных онлайн-безопасности. Можно использовать любой тип сканирования для проверки вашего ПК на вирусы, трояны, шпионские и другие вредоносные программы.

процессов:

Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Для корректной работы сгенерированного приложения необходимо, чтобы была запущена служба ASP.NET State Service (Служба состояний ASP.NET). Если при запуске сгенерированного веб-приложения выводится сообщение об ошибке, связанное с данной службой, необходимо:

Asp net state service что это за служба и нужна ли она. Смотреть фото Asp net state service что это за служба и нужна ли она. Смотреть картинку Asp net state service что это за служба и нужна ли она. Картинка про Asp net state service что это за служба и нужна ли она. Фото Asp net state service что это за служба и нужна ли она

2.В списке дважды кликнуть по ASP.NET State Service (или Служба состояний ASP.NET ).

Asp net state service что это за служба и нужна ли она. Смотреть фото Asp net state service что это за служба и нужна ли она. Смотреть картинку Asp net state service что это за служба и нужна ли она. Картинка про Asp net state service что это за служба и нужна ли она. Фото Asp net state service что это за служба и нужна ли она

5.Закрыть все окна, относящиеся к Панели управления.

Источник

Настройка служб.

Ускорить работу системы и освободить немного памяти можно запретив загрузку ненужных системных служб. Отключить ненужные службы можно через Панель управления->Администрирование->Службы или Пуск->Выполнить->services.msc. Здесь надо быть предельно осторожным, потому как при отключении всех служб подряд вы можете привести систему в неработоспособное состояние и столкнуться с такой ситуацией, что не сможете включить всё обратно. Чтобы полностью избежать проблем при экспериментах со службами, желательно перед тем, как производить эти эксперименты, сохранить ветку реестра, отвечающую за запуск системных служб. Для этого в редакторе реестра Regedit сохраните ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services (через меню Файл->Экспорт).

Итак, приступим к обзору служб:

DHCP-клиент (DHCP Client) – служба, позволяющая компьютеру автоматически получать необходимые сетевые настройки (сетевой адрес, шлюз, адреса серверов имен) с DHCP-сервера. Если машина находится в локальной сети, использующей DHCP-сервер, или используется высокоскоростное соединение с Интернет (выделенная линия, xDSL и т.п.), оставляем тип запуска Авто. Если используете только удаленный доступ к сети с помощью обычного или ISDN-модема, и у Вас нигде не указан DHCP-сервер, Отключаем за ненадобностью;

Telnet – позволяет удаленному пользователю входить в систему и запускать программы консоли с помощью командной строки. Если вы изредка пользуетесь Telnet, оставьте Вручную. Если данная возможность нужна постоянно, укажите тип запуска Авто. Для всех остальных крайне рекомендуется Отключить;

Автоматическое обновление (Automatic Updates) – автоматическая загрузка и установка критических обновлений Windows XP. Если у вас нет соединения с Интернет, или если вы хотите контролировать всё, что делает ваш компьютер, то службу можно Отключить и загружать обновления для Windows XP вручную;

Брандмауэр Интернета (ICF)/Общий доступ к Интернету (ICS) (Internet Connection Firewall (ICF)/Internet Connection Sharing (ICS)) – Эта служба осуществляет преобразование сетевых адресов, адресацию и разрешение имен для всех компьютеров домашней или небольшой офисной сети. Когда установлен общий доступ к подключению Интернета, компьютер становится «шлюзом», а другие клиентские компьютеры сети могут совместно использовать одно подключение к Интернету (например, подключение удаленного доступа или широкополосное соединение). Позволяет тонко настроить фильтрацию сетевого траффика. Если вы используете файерволл сторонних производителей (Outpost firewall, Norton Personal Firewall, ZoneAlarm и т.п.), то необходимо отключить данную службу.

Веб-клиент (WebClient) – Позволяет Windows-программам создавать, получать доступ и изменять файлы, хранящиеся в Интернете. Для большинства пользователей эта служба бесполезна, так что Отключаем. Если возникнут проблемы с FTP или используете представляемые данной службой возможности, оставьте тип запуска Авто;

Диспетчер отгрузки (Upload Manager) – Управляет синхронной и асинхронной передачей файлов между клиентами и серверами в сети. На ваше усмотрение. Отключение службы к катастрофе не приводит;

Имейте ввиду, что данная служба может потребоваться для некоторых прямых подключений или DSL-подключений.

Журнал событий (Event Log) – ведет протоколирование системных событий, выдаваемых программами и операционной системой. Журналы событий используются при диагностике неполадок. Оставьте запуск Авто. Эта служба не может быть остановлена. C помощью данной службы можно посмотреть какие программы «вылетают» при работе операционной системы, очень полезный инструмент для опытного пользователя.

Запуск серверных процессов DCOM. При отключении этой службы перестанют работать многие функции ОС (при случайном отключении этой службы пришлось сносить SP2 для локализации проблемы и восстановления функциональности системы), поэтому оставить тип запуска Авто;

Защищенное хранилище (Protected Storage) – обеспечивает защищенное хранение секретных данных, таких, как закрытые ключи и пароли, для предотвращения несанкционированного доступа служб, процессов или пользователей. Служба, в частности, хранит пароли WWW, FTP, NNTP, POP3 серверов для Internet Explorer и Outlook Express. Для максимальной безопасности можно Отключить и обречь себя этим на постоянный ввод паролей. Для большего удобства при приемлемом уровне безопасности лучше оставить Авто;

Монитор инфракрасной связи. Обеспечивает работу устройств по посредством ИК-порта. Если ИК-порт используется, то Авто, иначе Отключено.

Обозреватель компьютеров (Computer Browser) – обслуживает список компьютеров в сети и выдает его программам по запросу. Установите тип запуска Отключено, если Вы не подключены к локальной сети. Если Вы администратор локальной сети, то Вы также можете Отключить эту службу на всех компьютерах за исключением одного (Сервера);

Определение оборудования оболочки (Shell Hardware Detection) – gредоставляет уведомления для событий автоматического воспроизведения или выполнения «Автозапуск». Отключайте, если не используете Автораспознавание дисков;

Планировщик заданий (Task Scheduler) – позволяет выполнять программы в назначенное время. Оставьте Авто – планировщик используется системой для встроенной оптимизации размещения файлов;

Сервер (Server) – обеспечивает поддержку общего доступа к файлам, принтерам и именованным каналам через сетевое подключение. На одиночном компьютере желательно остановить данную службу (Отключено). Еcли Вы отключите службу на компьютере в локальной сети, никто не сможет воспользоваться предоставленными Вами ресурсами. Поэтому там оставьте её в Авто;

Серийный номер переносного медиа-устройства (Portable media serial number, в SP2 переименована в «Службу серийных номеров переносных устройств мультимедиа») – обеспечивает получение серийных номеров переносных медиа-устройств, подключенных к компьютеру. Очередное нововведение Microsoft в рамках борьбы с музыкальным пиратством. Отключайте;

Сетевые подключения (Network Connections) – управляет объектами папки «Сеть и удаленный доступ к сети» (Network and Dial-Up Connections), отображающей свойства локальной сети и подключений удаленного доступа. Если вы не подключены к локальной сети и не выходите с этого компьютера в интернет, то Отключите, для остальных случаев лучше оставьте Вручную или Авто. Если вы отключите данную службу, то у вас больше в системном трее не будет появляться значок соединения (2 мониторчика) даже для модемных соединений.

Служба обнаружения SSDP (SSDP Discovery service) – включает обнаружение устройств, поддерживающих UPnP (универсальный Plug and Play) в домашней сети. Если у кого-то в сети есть UPnP-устройства, лучше оставьте Вручную. Все остальные (подавляющее большинство) Отключайте эту службу;

Служба регистрации ошибок (Error Reporting Service) – позволяет регистрировать ошибки для служб и приложений, выполняющихся в нестандартной среде. Ставьте Вручную;

Служба сетевого расположения (NLA) (Network Location Awareness (NLA)) – уведомляет приложения об изменении сетевых настроек. Без поддержки со стороны приложений бесполезна. Отключаем;

Служба шлюза уровня приложения (Application Layer Gateway Service) – поддержку сторонних протоколов, протоколов PnP для общего доступа к подключению к Интернету и подключений к Интернету с использованием файерволла. Если используете встроенный брандмауэр Интернета — Вручную, если нет — Отключайте; Подключаемые модули шлюза уровня приложения (Application Layer Gateway, ALG) могут открывать порты и изменять данные (например, порты и IP-адреса) в составе сетевых пакетов. FTP (File Transfer Protocol) – это единственный сетевой протокол с подключаемым модулем, который входит в состав операционной системы Windows. Подключаемый модуль ALG FTP предназначен для поддержки активных сеансов по протоколу FTP через NAT путем перенаправления всего трафика, который проходит через NAT на 21 порт. Служба занимает около 1.5 Mb в оперативной памяти.

Службы IPSEC (IPSEC Policy Agent, IPSEC Services) – управляет политикой IP-безопасности и запускает ISAKMP/Oakley (IKE) и драйвер IP-безопасности. Служба нужна, только если компьютер подключается к домену Windows 2000. В противном случае Отключаем;

Службы терминалов (Terminal Service) – позволяют нескольким пользователям подключаться к локальной машине по сети и удаленно работать с ней. Кроме этого, через эту службу работает удаленный рабочий стол (включая удаленное администрирование), быстрое переключение пользователей на одной машине (Switch User), удаленный помощник и службы терминалов. Также служба используется Монитором инфракрасной связи и при ее отключении в Диспетчере задач не выводится пользователь, от чьего имени запущен процесс. Если вам эти возможности не нужны, Отключите эту службу, иначе оставьте ее Вручную;

Справка и поддержка (Help and Support) – обеспечивает возможность работы центра справки и поддержки. Если вы запускаете программу Справка и Поддержка через меню Пуск, то данная служба будет включена в любом случае, даже если стоит значение Отключена.

Телефония (Telephony) – обеспечивает поддержку Telephony API (TAPI) для программ, управляющих телефонным оборудованием и голосовыми IP-подключениями на этом компьютере, а также через ЛВС — на серверах, где запущена соответствующая служба. Если вам нужен доступ к Интернету с помощью модема, оставляем Вручную. Если же модема в наличии не имеется — Отключаем;

Темы (Themes) – управление темами оформления. Если вы не используете темы XP и предпочитаете классический вид Windows, Отключайте. Для остальных – Авто;

Источник

Состояние сеанса

— это самая сложная технология для управления состояниями. Она позволяет сохранять информацию на одной странице и затем получать к ней доступ с другой страницы, а также поддерживает объекты любого типа, включая специальные, создаваемые самим разработчиком типы данных. Лучше всего то, что состояние сеанса использует такой же основанный на коллекциях синтаксис, что и состояние представления. Единственное отличие связано с именем встроенного свойства страницы, которое в данном случае выглядит как Session.

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

Но за использование состояния сеанса необходимо платить свою цену. Хотя оно решает многие из проблем, которые возникают в случае применения других технологий управления состояниями, его использование вынуждает веб-сервер сохранять дополнительную информацию в памяти. Необходимость в использовании дополнительных ресурсов памяти сервера, пусть даже в небольшом объеме, очень быстро может достичь угрожающего производительности уровня, когда к сайту начнут получать доступ тысячи клиентов.

Архитектура сеанса

Управление сеансом не является частью HTTP-стандарта. Поэтому для отслеживания информации сеанса и ее привязки к соответствующему ответу ASP.NET приходится выполнять дополнительную работу.

ASP.NET отслеживает каждый сеанс с помощью уникального 120-битового идентификатора. Для генерации этого значения ASP.NET использует патентованный алгоритм, что, согласно статистике, обеспечивает гарантию того, что число будет уникальным и достаточно случайным для того, чтобы злоумышленник не смог воссоздать или угадать идентификатор сеанса, которым будет пользоваться данный клиент. Этот идентификатор является единственным фрагментом информации, который передается между вебсервером и клиентом.

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

При каждом новом запросе ASP.NET генерирует новый идентификатор сеанса до тех пор, пока состояние сеанса не будет фактически использовано для сохранения какой-то информации. Такое поведение позволяет немного увеличить производительность. Коротко это можно объяснить так: зачем тратить время на сохранение идентификатора сеанса, если он не используется?

Когда ASP.NET обрабатывает HTTP-запрос, тот проходит через конвейер различных модулей, которые могут реагировать на события приложения. Одним из модулей в этой цепочке является SessionStateModule (который находится в пространстве имен System.Web.SessionState). Этот модуль генерирует идентификатор сеанса, извлекает из внешних поставщиков состояния данные сеанса и затем привязывает эти данные к контексту вызовов запроса. Он также сохраняет данные состояния сеанса, когда обработка страницы завершается.

Однако важно понимать, что модуль SessionStateModule фактически не хранит данные сеанса. Вместо этого состояние сеанса сохраняется во внешних компонентах, которые называются поставщиками состояния:

Asp net state service что это за служба и нужна ли она. Смотреть фото Asp net state service что это за служба и нужна ли она. Смотреть картинку Asp net state service что это за служба и нужна ли она. Картинка про Asp net state service что это за служба и нужна ли она. Фото Asp net state service что это за служба и нужна ли она

Чтобы механизм состояния сеанса работал, клиент вместе с каждым запросом должен предоставлять соответствующий идентификатор сеанса. Финальным фрагментом данной головоломки является способ отслеживания этого идентификатора сеанса от одного запроса к другому. Это можно делать двумя способами:

С применением cookie-наборов. В этом случае идентификатор сеанса передается в специальном cookie-наборе (по имени ASP.NET_SessionId), который ASP.NET создает автоматически, когда используется коллекция сеанса. Он применяется по умолчанию и соответствует способу из более ранних версий ASP.

С помощью измененных URL-адресов. В этом случае идентификатор сеанса передается в специально измененном URL-адресе. Это дает возможность создавать приложения, которые используют состояние сеанса для клиентов, не поддерживающих cookie-наборы.

Использование состояния сеанса

Взаимодействовать с состоянием сеанса можно с помощью класса System.Web.SessionState.HttpSessionState, который на веб-странице ASP.NET доступен в виде встроенного объекта Session. Синтаксис для добавления элементов в эту коллекцию и их извлечения выглядит практически так же, как и синтаксис, который используется для добавления элементов в состояние представления страницы.

Например, вот как сохранить объект DataSet в памяти сеанса:

После этого его можно извлечь с помощью соответствующей операции преобразования:

Контекст состояния сеанса охватывает все приложение и является глобальным для текущего пользователя. Данные состояния сеанса могут быть утеряны в следующих случаях:

Если пользователь закрывает и заново запускает браузер.

Если пользователь получает доступ к той же странице через другое окно браузера, хотя сеанс будет по-прежнему существовать, если доступ к веб-странице получается из исходного окна браузера. Разные браузеры ведут себя в такой ситуации по-разному.

Если сеанс завершается из-за отсутствия активности со стороны пользователя. По умолчанию сеанс автоматически завершается после 20 минут простоя.

Если программист завершает сеанс вызовом метода Session.Abandon().

В первых двух случаях данные состояния сеанса фактически остаются в памяти сервера, потому что веб-сервер не разбирается в том, закрыл клиент окно браузера или открыл новое. Они будут продолжать находиться там, оставаясь недоступным, до тех пор, пока не истечет срок их хранения.

Вдобавок данные состояния сеанса также будут утеряны и в случае повторного создания домена приложения. Этот процесс происходит автоматически при обновлении веб-приложения либо изменении конфигурационных параметров. Домен приложения также может создаваться заново через определенные промежутки времени для поддержания приложения в нормальном работоспособном состоянии. Если такое поведение приводит к возникновению проблем, данные состояния сеанса можно хранить вне процесса. В таком случае они не потеряются даже в результате завершения домена приложения.

В таблице ниже перечислены основные методы и свойства класса HttpSessionState:

Конфигурирование состояния сеанса

Сконфигурировать состояние сеанса можно с помощью элемента в файле web.config. Ниже показаны все доступные параметры настройки, которые можно применять:

Атрибуты сеанса подробно описаны в последующих разделах.

Параметр настройки состояния сеанса Mode позволяет указать, какой поставщик состояния сеанса должен использоваться для хранения данных состояния сеанса между запросами. Допустимые значения перечислены ниже:

Установка значения Off отключает управление состоянием сеанса для всех страниц в приложении. Это может немного увеличить производительность веб-сайтов, которые не используют состояние сеанса.

InProc

Установка значения InProc напоминает подход, который использовался для хранения состояния сеанса в классической версии ASP. Это значение указывает ASP.NET хранить информацию в текущем домене приложения, что обеспечивает наилучшую производительность, но наименьший срок хранения: если вы перезапустите сервер, данные состояния будут утеряны.

Значение InProc используется по умолчанию и подходит для большинства веб-сайтов небольшого размера. Однако в сценарии веб-фабрики от него не будет никакого толку. Чтобы состояние сеанса совместно использовалось множеством серверов, необходимо применять внепроцессный поставщик или службу состояний SQL Server.

Еще одна причина, по которой установка значения InProc может быть нежелательной, состоит в том, что она приводит к получению более «хрупких» сеансов. В ASP.NET домены приложений создаются заново в ответ на различные действия, включая изменения конфигурационных настроек, обновления страниц, а также достижение определенных пороговых значений (независимо от того, произошла ошибка или нет). Если вы обнаружите, что домен приложения часто перезапускается, что приводит к преждевременному завершению сеансов, можете воспользоваться одним из более надежных поставщиков состояния сеанса.

StateServer

В случае установки этого значения ASP.NET будет использовать для управления состоянием отдельную Windows-службу. Даже при запуске на том же самом веб-сервере эта служба будет загружаться за пределами главного процесса ASP.NET, что обеспечивает для нее базовый уровень защиты, когда возникает необходимость перезапуска процесса ASP.NET. Недостаток такого подхода в том, что из-за передачи данных состояния между двумя процессами увеличивается время задержки. Если доступ к данным сеанса получается часто, и они часто изменяются, работа может существенно замедлиться.

Выбрав режим StateServer, обязательно следует указать значение для параметра stateConnectionString. Эта строка сообщает TCP/IP-адрес компьютера, на котором запускается служба StateServer, и номер его порта (который определяется ASP.NET и который обычно изменять не нужно), что позволяет обслуживать службу StateServer на другом компьютере. Если не изменить значение этого параметра, использоваться будет локальный сервер (с адресом 127.0.0.1).

Asp net state service что это за служба и нужна ли она. Смотреть фото Asp net state service что это за служба и нужна ли она. Смотреть картинку Asp net state service что это за служба и нужна ли она. Картинка про Asp net state service что это за служба и нужна ли она. Фото Asp net state service что это за служба и нужна ли она

Отыскав службу в списке, вы можете вручную запустить или остановить ее с помощью щелчка правой кнопкой мыши. Обычно имеет смысл сконфигурировать ОС Windows так, чтобы эта служба запускалась автоматически. Для этого щелкните на имени службы правой кнопкой мыши, в появившемся контекстном меню выберите пункт Properties (Свойства). После этого в списке Startup Type (Тип запуска) выберите значение Automatic (Автоматически), как показано на рисунке ниже. Далее щелкните на кнопке Start (Запустить), чтобы запустить эту службу немедленно.

Asp net state service что это за служба и нужна ли она. Смотреть фото Asp net state service что это за служба и нужна ли она. Смотреть картинку Asp net state service что это за служба и нужна ли она. Картинка про Asp net state service что это за служба и нужна ли она. Фото Asp net state service что это за служба и нужна ли она

Используя режим StateServer, можно также установить значение для необязательного атрибута stateNetworkTimeout, задающего максимальное количество секунд, в течение которых должен ожидаться ответ от службы, прежде чем запрос будет отменен. По умолчанию это значение равно 10 секунд.

SQLServer

Это значение заставляет ASP.NET использовать для хранения информации о сеансе базу данных SQL Server, применяя параметры, определенные в атрибуте sqlConnectionString. Такой способ управления состоянием является наиболее удобным, но пока что самым медленным. Чтобы его можно было использовать, на сервере должна быть установлена система SQL Server.

Установка значения для атрибута sqlConnectionString выполняется по схеме, подобной той, что применяется для получения доступа к данным ADO.NET. В целом это подразумевает указание источника данных (адреса сервера), имени пользователя и пароля, если только не используется интегрированная система безопасности SQL.

Вдобавок также должны быть установлены специальные хранимые процедуры и временные базы данных сеансов. Эти хранимые процедуры будут отвечать за сохранение и извлечение данных сеанса. В состав ASP.NET входит утилита командной строки, позволяющая выполнять эту задачу автоматически. Называется она aspnet_regsql.exe и находится в каталоге c:\Windows\Microsoft.NET\Framework\[Версия].

Ниже показана команда, которая создает базу данных для хранения данных сеанса на текущем компьютере, используя для нее стандартное имя ASPState:

В этой команде используется псевдоним localhost, который указывает aspnet_regsql.exe подключаться к серверу баз данных на текущем компьютере. Но вместо этого псевдонима может использоваться имя любого другого компьютера, на котором находится нужный сервер баз данных.

После создания базы данных состояния сеанса необходимо указать ASP.NET ее использовать, внеся соответствующие изменения в раздел файла web.config. Если для хранения информации о состоянии сеанса была создана база данных ASPState (это принято по умолчанию), тогда предоставлять ее имя в разделе не нужно. Вместо этого следует указать место размещения сервера и тип аутентификации, который ASP.NET должна применять для подключения к этому серверу:

На этом процедура настройки завершена. Однако если нужно использовать постоянные сеансы или специальную базу данных, эти шаги могут быть немного изменены, как будет показано далее.

Обычно при управлении состоянием с помощью SQL Server по-прежнему действует стандартный параметр тайм-аута состояния сеанса. Причина в том, что утилита aspnet_regsql.exe также создает для SQL Server новое задание по имени ASPState_Job_DeleteExpiredSessions. До тех пор, пока работает служба SQLServerAgent, это задание будет выполняться каждую минуту.

Теперь записи сеанса будут оставаться в базе данных даже в случае перезапуска SQL Server.

При таком подходе таблицы данных сеанса будут сразу же созданы как постоянные, так что содержащиеся в них записи будут оставаться даже после перезапуска SQL Server.

В случае использования специальной базы данных также потребуется выполнить две конфигурационные настройки в разделе файла web.сonfig. Во-первых, необходимо установить атрибут allowCustomSqlDatabase в true. Во-вторых, понадобится добавить в строку соединения параметр InitialCatalog с именем используемой базы данных. Ниже показан должным образом настроенный элемент :

В случае выбора режима SQLServer также можно устанавливать значение для необязательного атрибута sqlCommandTimeout, который задает максимальное количество секунд на ожидание ответа от базы данных перед отменой запроса. По умолчанию значение равно 30 секундам.

Custom

Выбор специального (Custom) режима требует указания используемого поставщика хранилища данных о состоянии сеанса с помощью атрибута customProvider. В атрибуте customProvider может быть задано как имя класса, являющегося частью веб-приложения и хранящегося в каталоге App_Code, так и имя класса, входящего в состав скомпилированной сборки и хранящегося в каталоге Bin или в глобальном кэше сборок (GAC).

К числу наиболее распространенных причин для применения специального поставщика хранилища данных о состоянии сеанса относится необходимость хранить информацию сеанса в базе данных, отличной от SQL Server, и потребность использовать какую-то существующую таблицу в базе данных, которая имеет определенную схему.

Создание специального поставщика представляет собой низкоуровневую процедуру, которая должна проводиться очень тщательно и осторожно для гарантии безопасности, стабильности и масштабируемости, из-за чего всегда лучше пользоваться готовым поставщиком, который был разработан и протестирован надежной сторонней компанией.

Сжатие

В ASP.NET доступно средство сжатия, которое позволяет сократить размер сериализируемых данных сеанса. Если установить атрибут enableCompression в true, данные сеанса перед отправкой за пределы процесса будут сжиматься (с использованием класса System.IO.Compression.GZipStream). Параметр enableCompression действует только при использовании внепроцессного хранилища состояния сеанса, поскольку только в такой ситуации данные сериализируются.

Для сжатия и восстановления данных сеанса веб-сервер должен выполнять дополнительную работу. Однако обычно это никакой проблемы не представляет, т.к. сжатие применяется лишь в тех сценариях, когда веб-серверы имеют массу лишнего времени ЦП, но ограничены по каким-то другим показателям. Сжатие данных состояния сеанса имеет смысл в описанных двух ключевых ситуациях:

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

При сохранении данных состояния сеанса данных на другом компьютере. В некоторых веб-приложениях с высокой степенью масштабируемости состояние сеанса сохраняется за пределами процесса (обычно в базе данных SQL Server) или на отдельном компьютере. Из-за этого среда ASP.NET должна передавать информацию сеанса туда и обратно через сетевое соединение. Очевидно, что при таком проектном решении показатели производительности будут значительно ниже, чем при сохранении состояния сеанса на компьютере веб-сервера. Однако для некоторых веб-приложений, с высоким трафиком и большими потребностями в плане сохранения данных состояния сеанса это решение все равно может быть лучшим компромиссом.

Cookieless

Параметр Cookieless может быть установлен в любое из значений перечисления HttpCookieMode. С помощью атрибута cookieName можно указать имя, используемое для cookie-набора. Если оно не указано, для имени cookie-набора принимается значение по умолчанию, которое выглядит как ASP.NET_SessionId.

Значения, доступные в перечислении HttpCookieMode

ЗначениеОписание
UseCookiesCookie-наборы используются всегда, даже если браузер или устройство не поддерживает их или если они были отключены. Это значение устанавливается по умолчанию. Если устройство не поддерживает cookie-наборы, информация сеанса будет утрачиваться при последующих запросах, потому что каждый запрос будет получать новый идентификатор
UseUriCookieCookie-наборы не используются никогда, независимо от возможностей браузера или устройства. Вместо этого идентификатор сеанса сохраняется в URL-адресе
UseDeviceProfileASP.NET решает, какие сеансы использовать (с поддержкой cookie-наборов или без), анализируя содержимое объекта BrowserCapabilities. Недостаток такого подхода заключается в том, что этот объект указывает, что устройство должно поддерживать: он не учитывает того факта, что пользователь мог отключить cookie-наборы в браузере, который в принципе их поддерживает
AutoDetectASP.NET пытается определить, поддерживает ли браузер cookie-наборы, пробуя установить и извлечь cookie-набор. Эта широко используемая технология позволяет точно определить, когда браузер поддерживает cookie-наборы, но это средство было отключено, указывая ASP.NET применять режим без поддержки cookie-наборов

Ниже приведен пример принудительного применения режима без поддержки cookie-наборов (что удобно для целей тестирования):

В режиме без поддержки cookie-наборов идентификатор сеанса будет автоматически вставляться в URL-адрес. Получив запрос, ASP.NET будет удалять идентификатор, извлекать коллекцию сеанса и направлять запрос в соответствующий каталог. Измененный URL-адрес показан ниже:

Поскольку идентификатор сеанса вставляется в текущий URL-адрес, все относительные ссылки также автоматически получают этот идентификатор сеанса. Другими словами, если пользователь на текущий момент находится на странице Page1.aspx и щелкает на относительной ссылке, указывающей на страницу Page2.aspx, эта относительная ссылка будет включать текущий идентификатор сеанса как часть URL-адреса. То же самое произойдет и если вызвать метод Response.Redirect() с относительным URL-адресом.

Единственное реальное ограничение режима без поддержки cookie-наборов состоит в том, что с ним нельзя применять абсолютные ссылки, потому что они не будут содержать идентификатора сеанса. Например, выполнение следующего оператора приведет к утрате пользователем всей информации о сеансе:

По умолчанию ASP.NET допускает повторное использование идентификатора сеанса. Например, если делается запрос и строка запроса содержит просроченный сеанс, ASP.NET создает новый сеанс и использует этот же идентификатор сеанса. Проблема в том, что идентификатор сеанса может случайно появиться в каком-то публичном месте, например, на странице результатов в поисковой службе. Это может привести к тому, что множество пользователей получат доступ к серверу с одним и тем же идентификатором сеанса и затем присоединятся к одному и тому же сеансу с теми же самыми разделяемыми данными.

Во избежание такой потенциальной угрозы безопасности, рекомендуется включать в код необязательный атрибут regenerateExpiredSessionId и устанавливать его в true при использовании сеансов без cookie-наборов. В этом случае при подключении пользователя с просроченным идентификатором сеанса будет генерироваться новый идентификатор сеанса.

Единственный недостаток такого подхода состоит в том, что он подразумевает утерю всех данных состояния представления и формы на текущей странице, т.к. для обеспечения нового идентификатора сеанса ASP.NET выполняет переадресацию браузера.

Чтобы выяснить, используется ли в текущий момент сеанс без cookie-наборов, необходимо проверить свойство IsCookieless объекта Session.

Timeout

Еще одним важным параметром настройки состояния сеанса в файле web.config является Timeout. Он указывает количество минут, в течение которых ASP.NET будет находиться в режиме ожидания (не получая запрос), прежде чем завершит сеанс:

Этот параметр является одним из наиболее важных параметров состояния сеанса. Неправильно выбранное количество минут может значительно увеличить нагрузку на сервер и крайне негативно сказаться на производительности приложения. В идеале выбираемый промежуток времени должен быть достаточно коротким для того, чтобы сервер мог быстро восстанавливать бесценные ресурсы памяти после того, как клиент прекращает использовать приложение, но и достаточно длинным для того, чтобы клиент мог делать паузу и продолжать сеанс, не утратив его.

Значение параметра Timeout можно также изменять в коде. Например, если известно, что сеанс содержит чрезвычайно большое количество информации, время хранения сеанса лучше ограничить. Для этого можно отобразить пользователю соответствующее предупредительное сообщение и затем просто изменить значение свойства Timeout. Следующая строка кода ограничивает время тайм-аута до 10 минут:

Обеспечение безопасности состояния сеанса

Данные в состоянии сеанса хорошо защищены, т.к. они хранятся исключительно на сервере. Однако cookie-набор и идентификатор сеанса крайне уязвимы. Это означает, что злоумышленник может похитить cookie-набор и инициировать сеанс на другом компьютере.

Существует несколько подходов, позволяющих обойти эту проблему. Наиболее распространенный из них — воспользоваться специальным модулем сеанса, выполняющим проверку на наличие изменений в IP-адресе клиента. Однако единственным действительно безопасным подходом является разрешение доступа к cookie-наборам сеанса только из тех разделов веб-сайта, где используется SSL-шифрование. В таком случае cookie-набор сеанса шифруется и, следовательно, становится бесполезным на других компьютерах.

Если решено воспользоваться этим подходом, также имеет смысл пометить cookie-набор как безопасный, чтобы он пересылался только через SSL-соединения. Это не позволит пользователям изменять URL-адрес с https:// на http:// и, следовательно, пересылать cookie-набор без SSL-шифрования. Ниже показан необходимый код:

Как правило, этот код применяется сразу после аутентификации пользователя. Удостоверьтесь, что в состоянии сеанса присутствует, по крайней мере, один фрагмент информации, чтобы сеанс не был завершен (и позже создан заново).

При использовании сеансов без cookie-наборов существует еще одна потенциальная угроза нарушения системы безопасности. Даже если идентификатор сеанса зашифрован, применив прием социальной инженерии, сообразительный пользователь может вынудить другого пользователя подключиться к определенному сеансу. Все, что злоумышленнику понадобится — это подсунуть другому пользователю URL-адрес с действительным идентификатором сеанса. Щелкнув на ссылке, этот пользователь сразу же подключится к такому сеансу. Хотя с этого момента идентификатор сеанса будет защищаться, атакующему уже известно, какой идентификатор сеанса используется, поэтому он сможет позже взломать этот сеанс.

Чтобы снизить возможность такой атаки, необходимо выполнить ряд определенных шагов. Во-первых, при использовании сеансов без cookie-наборов всегда устанавливайте атрибут regenerateExpiredSessionId в true. Это не позволит злоумышленнику предоставлять просроченный идентификатор сеанса. Во-вторых, явно прекращайте текущий сеанс перед входом в систему нового пользователя.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *