文章專區

網頁程式技術探討

ASP.NET Session工作階段儲存模式

1.InProc:預設儲存方式,所有的session都會被儲存進iis processs裡面,當更新web.config、bin目錄下的dll或iis 重啟時都會造成所有session被清除。

2.StateServer:將session儲存於ASP.NET 狀態服務裡面,使用此模式可以確保應用程式重啟時得以讓資訊保留下來。使用此模式時需確保ASP.NET 狀態服務(ASP.NET State Server)為啟用狀態。 

並設定web.config

<configuration>

    <system.web>

        <sessionState mode="StateServer" stateConnectionString="tcpip=localhost:42424"           timeout="20"/>

    </system.web>

</configuration>

3.SQLServer:儲存於SQL Server中,可以使用 Aspnet_regsql.exe 工具安裝資料庫(預設資料庫為ASPState),web.config設定如下

<configuration>

    <system.web>

        <sessionState mode="SQLServer" timeout="20" sqlConnectionString="Data Source=Server;Integrated-Security=SSPI;" />

    </system.web>

</configuration>

4.Custom:自訂一個儲存方式並使用此方式來存放session

※使用StateServer或SQLServer模式時,物件必須可序列化,只需要在類別前加上 [Serializable] 即可。