Как кеширование ASP.NET в IIS 7? Я знаю, что он хранится в памяти сервера, но какой процесс он управляет? Это адресное пространство w3wp.exe или его адрес в другом месте? И данные сеанса используют кеш, или сеанс работает по-разному?Расположение кэша ASP.NET
6
A
ответ
3
Вы настраиваете, где данные сеанса хранятся в вашем web.config
с помощью sessionState element. Если установлено значение InProc
, он будет сохранен в памяти в процессе w3wp.exe
, который соответствует пулу приложений вашего приложения. Вы также можете хранить его в экземпляре SQL Server.
Если этот элемент не указан в вашем файле конфигурации, проверьте уровень машины web.config
для вашей целевой версии/архитектуры.
Вы правы, спасибо. Я также сделал свой собственный рытье (через Reflector) и придумал дополнительную информацию. Основной объект ASP.NET Cache (в конечном итоге) реализует себя как управляемый HashTable. Нет COM-вуду, которого я ожидал на полпути. Похоже, что все кэширование ASP.NET выполняется через управляемый код, т. Е. Все объекты кэша хранятся в адресном пространстве w3wp.exe. –
Чтобы поддержать это, я всегда думал, что утилизация пула приложений выведет элементы из 'HttpContext.Cache'. Я не мог найти вспомогательную информацию, но это заставляет меня думать, что она хранится в памяти в соответствующем экземпляре 'w3wp.exe'. – wsanville
Yup, вспомогательная информация заключается в том, что кеш хранится как HashTable (проверьте класс System.Web.Caching.CacheSingle). Нет неуправляемого кода. Теперь мы оба знаем. :) –