2012-02-03 79 views
6

儘管問題標題看起來有點主觀,但我確信沒有太多需要討論的問題。我目前正在一些MVC項目中使用TemData容器。當我閱讀MSDN中的文檔時,似乎使用TempData創建會話,並且一旦讀取我們存儲在tempdata中的數據就消失了。我對這個概念沒問題,但是今天早上讓我煩惱的事情是,當您在Web Farm環境中託管應用程序時它的行爲如何。MVC 3 tempdata容器缺點

如果一個GET請求傳遞給服務器1,它創建了一個TempData的和後續的GET/POST請求被髮送到服務器2

我可能是完全錯誤的這一假設,但我只需要澄清在這東西。

任何輸入將深受讚賞...

乾杯!

回答

2

在做了一些研究之後,如果您在應用程序中使用會話變量,我在我的問題中發佈的場景是不可避免的。我們可以做的最好的事情是減少我們可以存儲在會話中的數據量,除此之外,如果我們仍然需要在webfarm/multi服務器環境中使用會話,那麼可以進行一些配置更改。以下是關於如何管理會話存儲的非常有用的文章。

ASP.NET Session how to FAQs

0

是的,默認情況下,ASP.NET MVC存儲會話中的TempData。如果會話處於inproc(默認)狀態,並且您在Web場中,那麼您可能無法獲得下一個請求的正確會話數據。如果您使用的是Web表單,那麼使用其他會話存儲方法,如狀態服務器或sql server。