ASP.NET会话状态与HttpServerUtility对象使用指南
1. 会话状态设置
在ASP.NET中,会话状态设置对于应用程序的数据存储和性能有着重要影响。常见的会话状态设置有三种:
- InProc :默认设置,会话状态服务器在进程内运行。
- StateServer :会话状态服务器在进程外运行。保存 web.config
文件并重新运行应用程序,通过按住浏览器刷新键进行性能测试,会发现每秒请求数有所下降。这是因为 StateServer
设置使 SessionState
服务器在进程外运行,ASP.NET必须在进程间封送数据,比在进程内运行稍慢。在特定设置下,平均请求数大约下降30%,但这是为了让应用程序从单台机器扩展到多服务器Web场而付出的小代价,只需更改 web.config
设置即可。
- SQLServer :会话状态服务器将会话数据存储在SQL Server中。无需手动创建表或数据库,ASP.NET会自动处理,但需要有对SQL Server的可信登录。与 StateServer
相比,性能可能会下降,具体取决于机器内存、是否有专门分配给SQL Server的内存、SQL Server所在服务器位置以及服务器之间的连接速度等因素。在特定设置下,第一次请求后 SQLServer
设置和 StateServer
设置之间没有明显差异(第一次请求明显较