2012-08-28 56 views
2

我需要使用TempData將請求重定向到另一個具有特定請求的操作。我知道TempData使用會話來存儲數據。MVC RedirectToAction和LoadBalancing

如果請求到達server01,並且請求被重定向到另一個動作,請求將保留在server01上還是可能會轉到server02?如果它到達server02,我將無法正確處理TempData。

有沒有辦法讓server01上的請求保持特定的重定向?或者我必須創建一個cookie來指向數據庫上的數據,並檢查請求是否存在cookie?

問候

注:負載均衡是由設備處理出來,其中的服務器所在的網絡和服務器不在一個IIS Web場。

回答

1

有沒有辦法讓server01上的請求保持特定的重定向?

您需要使用StateServerSQLServerstore your sessions而不是InProc。另一種可能性是將負載均衡器配置爲始終將來自同一IP的請求發送到同一臺服務器。

當然,這些都是非常糟糕的想法。實現這一目標的最好方法是簡單地擺脫會話和TempData,並以無狀態,RESTFul方式設計應用程序。我最喜歡的sessionState模式如下:

<sessionState mode="Off" />