每個虛擬目錄相當於是一個應用,其中的Session是不共享的,不過你的Session存儲方式設置成了 inpro,stateserver還是SQLSERVE,同樣都實現不了Session共享。
但如果使用SQLSERVER數據庫存儲Session,則可以變相的時限共享,方法如下:
首先設置虛擬目錄的Session存儲在SQL上SERVER:
步驟一:創建ASPState數據庫
打開CMD
進入:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
執行
aspnet_regsql.exe -S . -U sa -P 123456 -ssadd -sstype p
-s 就是服務器地址用.表示本地
-ssadd添加
-sstype p session存儲在ASPState數據庫中 如果是t 就存在tempdb
會話數據庫創建好后。
步驟二.在虛擬目錄里web.config添加一個配置節點:
在<system.web>節點內添加
<sessionState mode="SQLServer" sqlConnectionString="server=127.0.0.1; uid=sa; pwd=sa;" cookieless="false" timeout="50"/>
配置節點。
弄好了,會話信息就存在在數據庫中了。
打開數據庫的ASPState庫,查看存儲過程“[TempGetAppID]” 修改它
查找這段語句:SET @appName =LOWER(@appName)
修改成SET @appName="入口虛擬目錄"
修改好后,在入口虛擬目錄中設置了session后,其他地方都可以共用該session了。