本人基本不使用Session,很經常都是通過Cookie來完成這些問題,但是今天碰到同事弄得一個項目使用Session來驗證驗證碼的,出現了這個問題,下面是在網路上搜到的一個解決方案,記錄下來一邊後面使用。
異常詳細資料: System.Web.HttpException: 無法向工作階段狀態伺服器發出工作階段狀態請求。請確保已啟動 ASP.NET State service,並且用戶端和伺服器連接埠是相同的。如果伺服器位於遠端電腦上,請檢查 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection 的值,確保伺服器接受遠程請求。
源錯誤:
執行當前 Web 請求期間產生了未處理的異常。可以使用下面的異常堆疊追蹤資訊確定有關異常原因和發生位置的資訊。
方法一:
在"管理工具"中的"服務"啟動"ASP.NET State Service"
方法二:
web.config中配置SessionState的mode為StateServer,但指定的伺服器沒有開啟那個服務。
改成InProc即可。
方法三:
把殺毒軟體關掉,他可以以為運行產生的檔案是帶病毒的,會跟你阻止頁面產生
=============
Web.Config裡面:
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;user id=sa;password="
cookieless="false"
timeout="20"
/>
你是不是使用“StateServer”,如果是,請參考:
使用 StateServer 模式
確保 ASP.NET 狀態服務正在將儲存工作階段狀態資訊的遠程伺服器上運行。該服務是隨 ASP.NET Premium 版一起安裝的,並且該服務預設情況下位於 <Drive>:\Program Files\ASP.NET\Premium\version\aspnet_estate.exe。
在應用程式的 Web.config 檔案中,設定 mode=StateServer 並設定 stateConnectionString 屬性;例如 stateConnectionString="tcpip=sarath:42424"。
=============
以上資訊複製於網路,本部落格不確保完全正確。我碰到的問題就是開啟服務管理員,將“ASP.NET狀態服務”啟用就好了,希望和我一同碰到這個問題開發人員又說協助。