2012-11-07 41 views
6

我不使用MVC,URL重寫,自定義HTTP模塊等。在基本調用會話屬性時關閉了繼承System.Web.UI的網頁.Page或通過System.Web.HttpContext.Current.Session,我收到以下錯誤:僅當enableSessionState設置爲true時才能使用會話狀態

會話狀態只能在enableSessionState設置爲true時使用,無論是在配置文件中還是在Page指令中。請確保System.Web.SessionStateModule或自定義會話狀態模塊包含在應用程序配置的<configuration>\<system.web>\<httpModules>部分中。

經過一番研究,我已經實現瞭如下的Web.config,但錯誤仍然存​​在。我正在使用內置的Web服務器從Visual Studio 2010中調試Web應用程序。

<configuration> 
    <system.web> 
     <compilation debug="true" targetFramework="4.0" /> 
     <sessionState mode="InProc" timeout="60" cookieless="false" /> 
     <pages enableSessionState="true" /> 
     <httpModules> 
      <remove name="Session" /> 
      <add name="Session" type="System.Web.SessionState.SessionStateModule" /> 
     </httpModules> 
    </system.web> 
</configuration> 
+0

使用你的web.config例子,我創建在Visual Studio 2010中新的.NET 4.0的Web應用程序,並能更新一個會話變量。我想知道是否有其他事情正在導致您的應用程序出現問題。你可以發佈一個精簡版的應用程序,但仍然有問題嗎? – csm8118

+0

@ csm8118我太早能夠在請求中更新會話變量。但是,當我在稍後遇到此問題的請求中嘗試訪問該Session變量時。 – user786423

+0

請求中的哪個點出現錯誤?你可以發佈拋出錯誤的代碼嗎? – csm8118

回答

0

這個問題在我已知的情況下轉載....

如果框架或兩個平行的請求從瀏覽器的出現,如果這兩個頁面具有相同custombase頁面,訪問會話導致這異常由於多個工作線程...

更新: 對於這個問題的所有患者,我有我的發現在這裏! 1.我可以在IE瀏覽器(IE10)和FIREFOX(22)中重現這個問題,儘管我在本地代碼中設置了所有啓用的..etc.etc ...,在連接選項卡 - >局域網設置有「使用代理服務器的本地主機...」顯示覆選框作爲託運 - 沒有一個有效的代理服務器設置...

當我取消這個在IE中,與默認會話設置相同的代碼,運行像馬!

希望,讓一些光,

感謝

3

你的問題很簡單。如果您將代碼從Session_Start全局事件之後執行的位置移開,那麼您會很容易地看到此問題。作爲一個例子,在Page_Init事件中編寫代碼或覆蓋OnInit,並在那裏做你想做的任何事情。

希望這會爲你工作。

1

我花了很多時間調試這個問題。 我們的網站工作正常,直到昨天,突然停止與錯誤工作。

會話狀態只能在enableSessionState設置爲true(無論是在配置文件中還是在Page指令中)時使用。請確保System.Web.SessionStateModule或自定義會話狀態模塊包含在應用程序配置的\\部分中。

當檢查服務列表中缺少ASP.net狀態服務。

重新安裝它可以幫助解決問題。

C:\ WINDOWS \ Microsoft.Net \ Framework64 \ v4.0.30319 \ ASPNET_REGIIS -i

+0

鏈接是虛構 –

+0

謝謝。它幫助了我。無論如何,在Visual Studio和其他應用程序和依賴項安裝後的新系統上,我會遇到會話狀態異常。是的,可以通過刪除會話模塊並重新添加來輕鬆解決,但這不是出路。會話模塊不一定應包含在模塊中 – Regfor

相關問題