2012-03-18 2 views
0

Чтобы ускорить загрузку страницы, я удаляю SessionState с максимально возможного количества страниц. У меня много просматриваемых страниц, которые не требуют отслеживания сеансов.Что требует SessionState в ASP.NET

Я знаю, что хранение чего-то в сеансе, например.

Session.Add("name", value); 

использует состояние сеанса, но делает что-то еще или это так?

Я использую простой старый ASP.NET, а не MVC.

+0

Вы можете добавить в сеанс как «Session [" name "] = value;'. Помогает ли это? – Kaf

+0

Вы уверены, что что-то в магазине 'Session' использует' session state'? Я думаю, что нет, хотя я программист mvc ... – gdoron

+0

@Kaf - Подумайте, вы неправильно поняли мой вопрос. –

ответ

1

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

http://msdn.microsoft.com/en-us/magazine/cc163730.aspx

+0

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

1

управления ASP.NET использовать viestate или controlstate

, если вы не используете явно сессия ничего не будет использовать сеанс

0

Снятие сеанса не будет ускорять загрузку страницы одним битом. Сессия - это просто хэш-таблица на сервере. На самом деле умное использование сеанса может увеличить время загрузки, если вы используете его как механизм кэширования. Может быть, вы говорите о ViewState или ControlState?

+0

Я не совсем согласен с этим: sessionstate десериализуется/сериализуется каждый раз, когда выполняется запрос, и это занимает время – giammin

+0

Sessionstate увеличивает время загрузки страницы. Я использую AppFabric, что делает его еще более заметным, чем InProc. Профилирование подтверждает это. С каждой загрузкой страницы он должен получить состояние сеанса от поставщика сеанса. –

+0

@giammin это верно, только если вы НЕ используете сессию InProc. – Stilgar

0

Решение:

Есть там разные сессии состояний в ASP.NET http://msdn.microsoft.com/en-us/library/ms178586(v=VS.80).aspx

In-Process Mode defaul один <sessionState mode="InProc" timeout="10" />, сессия будет ясно после того, как перестроить проект

Режим государственного сервера мы можем использовать это, но не забудьте включить службы - государственная служба ASP.NET

<sessionState mode="StateServer" 
    stateConnectionString="tcpip=localhost:42424" 
    sqlConnectionString="data source=.\SQLEXPRESS; User ID=sa;Password=12345678; Integrated Security=SSPI" 
    cookieless="false" 
    timeout="2" 
/> 

SQL Server Mode мы можем использовать это после того, как создать БД ASPSate по команде, пожалуйста, проверьте этот сайт для деталей - http://www.brianstevenson.com/blog/aspstate-concurrently-running-for-net-1011-and-net-20

<sessionState mode="SQLServer" 
    stateConnectionString="tcpip=localhost:63586" 
    sqlConnectionString="data source=.\SQLEXPRESS; User ID=sa;Password=12345678; Integrated Security=SSPI" 
    cookieless="false" 
    timeout="2" 
/> 

Сессия в режиме сервера & SQL Mode состояние сервера будет не удаляться после восстановления проекта, это хорошо для разработки

Смежные вопросы