Q:启动的ASP.NET Session State服务,是不是我生产环境里面,多个程序凡是调用这个服务存SESSION的话,他们的SESSION管理都放在同一个进程里面进行管理的?
A:ASP.NET Session State服务应该是一个统一的管理器。与站点无关。就像iis admin管理多个站点类似
Q:比如说我有二个ASP.NET的站点在web.config里面都这么设置
- < sessionstate mode="stateserver" stateconnectionstring="tcpip=localhost:42424" timeout="60"/>
是不是session的管理都放在同一个sessoin state 管理器里面进行自行管理
那这个进程有没有回收呢,如果这样一回收,那不是所有的session都没有了吗(不是重启服务器)
A:timeout属性可以设置过期时间,过期将被清除。
Q:那有必要设置machineKey吗?我现在几个网站里面都只加了这么一句sessionstate的设置,这样会不会引起冲突(1台服务器多个站点)?还有machineKey 这个是一个什么东西,有什么作用,里面的值是从哪里取到的?
A:machineKey的设置:
- < machineKey
- validationKey="AutoGenerate,IsolateApps"
- decryptionKey="AutoGenerate,IsolateApps"
- validation="SHA1"
- decryption="Auto"
- />
具体请参考这篇文章。
Q:这个aspnet_stat.exe进程会不会像w3wp.exe那样回收呢,如果会回收那不惨了,一下子所有的session都没有拉。
A:进程都是在内存里执行的,除非内存不足会回收的。不然的话, session server没意义的,不是像sqlserver session那样存储。这个是随系统服务启动而启动停止而停止的,当然你可以手动结束进程。
以上就是有关ASP.NET Session State的一些问答。
【编辑推荐】