[英]ASP.NET Session difference InProc StateServer
[編輯]真正的問題是為什么
when EnableSessionState="ReadOnly"
sessionState mode="InProc" is not really readonly
but sessionState mode="StateServer" is
[/編輯]
我的ASP.NET應用程序中的會話存在問題。
當前,在網頁上,我有一個按鈕可以進行搜索(並將其保存在會話中),搜索完成后,我還有一個按鈕可以執行操作。 在WebMethod中調用此操作,並且顯示ajax進度欄。
開發此頁面時,必須將屬性EnableSessionState設置為“ ReadOnly”。
即使使用此ReadOnly參數,我也可以將搜索保存在會話中。
今天,我想對會話使用StateServer模式,但是現在,該會話確實處於ReadOnly模式。 因此,我無法獲得搜索結果來啟動第二個按鈕的操作。
任何幫助將不勝感激
問候
您可以在web.config(system.web部分)中刪除只讀設置並啟用會話狀態服務器:
<sessionState mode="StateServer" stateConnectionString="tcpip=server:port"></sessionState>
經過大量研究,我得出以下結論:
我將EnableSessionState設置為“ ReadOnly”,但是在InProc模式下,我仍然可以修改會話(使用StateServer,會話實際上是 ReadOnly)
此處有更多信息: http : //forums.asp.net/t/7504.aspx?Understanding+session+state+modes+FAQ
在Asp.NET中,“如果對同一會話提出了兩個並發請求(通過使用相同的SessionID值),則第一個請求將獲得對會話信息的互斥訪問。第二個請求僅在第一個請求完成后才執行。”
因此,如果不設置ReadOnly參數,就無法一起啟動2 WebMethod(進度條和“業務操作”)流程,請單擊此處。更多信息: http : //msdn.microsoft.com/zh-cn/library/ms178581.aspx
就我而言,我有一個問題,因為我將搜索結果存儲在會話中,但現在使用StateServer時,我的會話變量為ReadOnly,因此始終為空
我發現的解決方案是對此網頁使用緩存而不是會話(但我無法在此處詳細說明所有解決方法)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.