переменные сеанса для out of proc вызывают проблемы с памятью? - PullRequest
1 голос
/ 07 октября 2011

В моем текущем asp.net приложении я храню session variables в SQL server. Если вы укажете InProc, то сеанс будет сохранен в памяти сервера, но для out of proc (в моем случае) сеанс будет сохранен на сервере SQL.

Это правда? Из того, что я прочитал, с каждым запросом, который требует доступа к сеансу (в основном, с каждым запросом страницы), десериализуется сеанс из базы данных и сохраняется его обратно после завершения запроса. Это означает, что значения будут храниться на веб-сервере после его получения. Чем это отличается от InProc тогда?

Для Out of Proc, он получает только одну переменную сеанса, когда она запрашивается? В противном случае мне кажется, что это то же самое, что и InProc. Что мне не хватает.

1 Ответ

4 голосов
/ 07 октября 2011

Это правда?

Да, это правда.

Из того, что я прочитал, с каждым запросом, которому нужен доступ к сеансу (в основном каждый запрос страницы) десериализует сессию из базы данных и сохраните его обратно после завершения запроса. Это означает, что значения будут храниться на веб-сервере после его получения. Как это отличается от InProc тогда?

Значения хранятся в памяти только на время HTTP-запроса. В начале запроса они загружаются из SQL Server, а в конце запроса они сохраняются в SQL Server. Это отличается от InProc, где значения хранятся в памяти между запросами. И поскольку разные запросы (от одного и того же пользователя) могут обслуживаться разными узлами фермы серверов, использование SQL Server гарантирует, что все узлы фермы будут использовать одни и те же значения сеанса.

...