session保存在专门的StateServer中,该种方式,性能损失比sql略好。比inproc据说有10%-15%的性能损失。怎么使用StateServer 服务器呢?
1、初始化StateServer服务器
启动ASP.NET 状态服务【aspnet_state】,该服务默认是手动启动的,可以通过修改注册表,设置为自动启动并允许远程连接。修改方法如下:
修改注册表: [HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/aspnet_state/Parameters]
设置 AllowRemoteConnection = 1 , 设置 Port = 42424 (十进制,默认即为42424)
AllowRemoteConnection ,0仅能本机使用,1可以供其他机器使用.
Port是服务的端口号
2、修改webconfig配置文件
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="false" timeout="60"/>
其中stateConnectionString中的tcpip表示StateServer服务器的ip和端口。
注意StateServer不支持负载均衡,如果是大并发请保存在sql中。
参考资料:
使用一个 SQL 数据库 SQL Server 会话状态的所有应用程序可能导致瓶颈
http://support.microsoft.com/kb/836680/zh-cn
ASP.NET 中 Session 实现原理浅析 [1] /[2]
http://www.cnblogs.com/flier/archive/2004/08/04/30226.html
http://www.cnblogs.com/flier/archive/2004/08/07/30902.html
理解Session State模式+ASP.NET SESSION丢失FAQ [翻译]
http://www.cnblogs.com/tonyqus/archive/2006/10/24/522618.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?