2012-04-03 45 views
0

我不喜歡使用ASP.NET會話狀態,但我們的應用程序目前正在使用它。我們使用SQL Server模式來實現會話狀態持久性。我正在考慮在會話狀態中緩存授權檢查結果,但我擔心這種方法的性能。 .NET中的SQL Server會話狀態持久性究竟如何工作?SQL Server會話狀態持久性如何工作?

從我所知道的來看,所有會話數據都存儲在一個數據庫行中,數據本身存儲在一列中。我擔心的是,如果我們的應用程序在一個請求中執行了12次不同的授權檢查,並且每個結果都在收到後立即存儲,那麼當這些項目被存儲時,將會產生12個不同的數據庫請求,這將會使任何網絡請求減少無效試圖完成。

是否每個會話狀態突變都伴隨着一個同步數據庫請求,或者是否所有會話狀態更改都在ASP.NET請求生命週期中一次保存?

回答

0

會話在ReleaseRequestState應用程序事件之後的每個ASP.NET請求的末尾持久化 - 而不是會話數據更改。