什么需要ASP.NET中的SessionState

时间:2012-03-18 09:26:46

标签: c# asp.net

为了帮助加快我的页面加载时间,我将从尽可能多的页面中删除SessionState。我查看了很多页面,不需要任何会话跟踪。

我知道在会话中存储内容,例如

Session.Add("name", value);

使用会话状态,但是做了什么或是它吗?

我使用普通的旧ASP.NET而不是MVC。

4 个答案:

答案 0 :(得分:1)

请参阅以下链接以提高性能并了解会话状态

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

答案 1 :(得分:1)

asp.net控件使用viestate或controlstate

如果您不使用显式会话,则不会使用会话

答案 2 :(得分:0)

删除会话不会加快页面加载时间。 Session只是服务器上的哈希表。事实上,如果将会话用作缓存机制,巧妙使用会话可以缩短加载时间。也许你在谈论ViewState或ControlState?

答案 3 :(得分:0)

解决方案:

ASP.NET中存在不同的会话状态 http://msdn.microsoft.com/en-us/library/ms178586(v=VS.80).aspx

进程内模式 默认值为<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模式我们可以在创建DB ASPSate by命令之后使用它,请查看此站点了解详细信息 - 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"
/>

状态服务器模式下的会话&amp;重建项目后不会清除SQL Server模式,它有利于开发