1

我正在使用Azure Traffic Manager負載平衡不同地區的兩臺服務器。我認爲我需要一個存儲或redis緩存來處理會話狀態。然而,即使當我通過測試我所在的服務器回到服務器之間時,測試似乎仍然讓我登錄。我退出了,而我退出了另一個。我存儲的唯一會話狀態是一個用戶配置文件,但如果沒有找到它,它只會去服務器並抓取它。以下是我的表單設置。我真的需要類似redis緩存嗎?必須使用Azure流量管理器和會話狀態存儲進行負載平衡?

<sessionState timeout="2880" mode="InProc" /> 
    <authentication mode="Forms"> 
     <forms loginUrl="/login" path="/" protection="All" domain=".example.com" timeout="2880" slidingExpiration="true" name="_EXPOSURE_" /> 
    </authentication> 

回答

2

只有您可以決定如何設計您的應用程序,但是...流量管理器與會話狀態完全無關。它只是根據選擇的路由方法(距離/輪詢/主+故障切換)將用戶流量路由到多個Web端點。

上面的會話狀態代碼片段表示InProc,這意味着會話數據在給定VM上的Web服務器內部進行維護。這是虛擬機外部共享的而不是。如果您希望跨多個VM(或Web應用程序)共享會話狀態,則必須將會話狀態存儲在Web服務器外部。

無論你使用Redis或SQL數據庫還是其他的東西,都取決於你。

+0

我假設窗體會話正在工作,因爲我的機器鍵是相同的,並且域名是cookie的通配符。 –

相關問題