有關ASP.NET Session State的一些問答
Q:啟動的ASP.NET Session State服務,是不是我生產環(huán)境里面,多個程序凡是調用這個服務存SESSION的話,他們的SESSION管理都放在同一個進程里面進行管理的?
A:ASP.NET Session State服務應該是一個統(tǒng)一的管理器。與站點無關。就像iis admin管理多個站點類似
Q:比如說我有二個ASP.NET的站點在web.config里面都這么設置
- < sessionstate mode="stateserver" stateconnectionstring="tcpip=localhost:42424" timeout="60"/>
是不是session的管理都放在同一個sessoin state 管理器里面進行自行管理
那這個進程有沒有回收呢,如果這樣一回收,那不是所有的session都沒有了嗎(不是重啟服務器)
A:timeout屬性可以設置過期時間,過期將被清除。
Q:那有必要設置machineKey嗎?我現(xiàn)在幾個網(wǎng)站里面都只加了這么一句sessionstate的設置,這樣會不會引起沖突(1臺服務器多個站點)?還有machineKey 這個是一個什么東西,有什么作用,里面的值是從哪里取到的?
A:machineKey的設置:
- < machineKey
- validationKey="AutoGenerate,IsolateApps"
- decryptionKey="AutoGenerate,IsolateApps"
- validation="SHA1"
- decryption="Auto"
- />
具體請參考這篇文章。
Q:這個aspnet_stat.exe進程會不會像w3wp.exe那樣回收呢,如果會回收那不慘了,一下子所有的session都沒有拉。
A:進程都是在內存里執(zhí)行的,除非內存不足會回收的。不然的話, session server沒意義的,不是像sqlserver session那樣存儲。這個是隨系統(tǒng)服務啟動而啟動停止而停止的,當然你可以手動結束進程。
以上就是有關ASP.NET Session State的一些問答。
【編輯推薦】