The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

NOD32 與 無法將工作階段狀態要求送至工作階段狀態伺服器

當我們在設定 ASP.NET 應用程式以 "ASP.NET 狀態服務" 儲存 Session 資料時,可能有人曾經預過這個問題,錯誤��息如下:

無法將工作階段狀態要求送至工作階段狀態伺服器。請確定 ASP.NET 狀態服務已經啟動且用戶端與伺服器的通訊埠都相同。如果伺服器是在遠端電腦上,請檢查 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection 的值,確定它是否接受遠端要求。如果伺服器是在本機電腦上,而且前述登錄值不存在或設定為 0,狀態伺服器連接字串就必須使用 'localhost' 或 '127.0.0.1' 做為伺服器名稱。

 '/' 應用程式中發生伺服器錯誤。

無法將工作階段狀態要求送至工作階段狀態伺服器。請確定 ASP.NET 狀態服務已經啟動且用戶端與伺服器的通訊埠都相同。如果伺服器是在遠端電腦上,請檢查 HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services\ aspnet_state\ Parameters\ AllowRemoteConnection 的值,確定它是否接受遠端要求。如果伺服器是在本機電腦上,而且前述登錄值不存在或設定為 0,狀態伺服器連接字串就必須使用 'localhost' 或 '127.0.0.1' 做為伺服器名稱。

我之前就是怎麼調整都還是連不上,明明只是「本地連接 ( Local Connection )」而已,也沒有設定任何讓【ASP.NET 狀態服務】開放遠端連接的機碼,但為什麼總是連不上呢!而且自己用 Telnet 指令測試連結 ASP.NET 狀態服務的 Port 42424 也都可以正常連線,但就是 ASP.NET 無法連線而已,遇到這種情況真的會吐血。

查了好幾個小時後才知道,原來是 NOD32 防毒軟體的問題,阻擋了「疑似」HTTP 的連線,因為 NOD32 有支援 Internet Monitor (IMON) 的功能,可以偵測與過濾有問題的 HTTP 封包,就是因為這樣才導致無法使用 ASP.NET 狀態服務。

解決的方法如下:

  1. 先開啟 NOD32 Control Center,點選 IMON,再點選 Setup 按鈕

    先開啟 NOD32 Control Center,點選 IMON,再點選 Setup 按鈕

  2. 開啟 IMON Setup 後選取 HTTP 頁籤,然後取消勾選 Automatically detect HTTP communication on other ports.



  3. 按下 OK 後就立即可以用 ASP.NET 狀態服務了

 

所以如果有人有安裝防毒軟體或個人防火牆軟體的話,注意可能是這個問題,去看看有沒有設定可以將 ASP.NET 狀態服務排除在掃瞄範圍之外!