簡體   English   中英

ASP.NET會話差異InProc StateServer

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM