2010-08-20 76 views
0

我得到HttpContext.Current.Session爲null。HttpContext.Current.Session爲空

如果我們在Web場中託管應用程序,這會是一個問題嗎?

+0

你在哪裏得到這個?在一個ASP.net頁面? – Paddy 2010-08-20 09:16:22

+1

您能否提供更多信息? – 2010-08-20 09:16:31

+0

我正在ASP.Net頁面中獲取此。 – 2010-08-20 09:23:50

回答

2

根據您使用的會話類型,然後是,運行在農場可能會導致您的問題。如果負載均衡器或用於在服務器之間分割請求的內容是無狀態的,那麼它只會將請求轉發到任何舊服務器。如果會話數據存儲在proc中,那麼它將只存儲在一臺服務器上。如果下一個請求轉到另一個服務器,那麼會話數據將不再存在。

要做到這一點的最佳方法是使用更智能的負載平衡,它將始終將一個用戶請求轉發到同一個服務器,或與另一個會話類型(例如獨立於Web服務器的sessionServer)一起轉發,並且可以提供一致的會話狀態到所有Web服務器。

有人說過,我不希望當前會話狀態在這些情況下爲空,只是空的。我最近在啓動看起來無法訪問inproc會話狀態的新線程的上下文中,自己在空會話間自我調用。

無論這些問題是否有問題,您都很難說,但值得一提的是服務器場的問題,以確保您瞭解。 :)

相關問題