2011-04-07 56 views
0

我注意到在蔚藍的例子,他們正在使用:MVC3 StorageSessionStateProvider - 我需要它嗎?

<sessionState mode="Custom" customProvider="TableStorageSessionStateProvider"> 

有人能解釋這是用於與MVC3?我對會話狀態非常困惑。如果我的應用程序沒有購物車之類的東西,我真的需要使用它嗎?如果我只是想做簡單的身份驗證,需要嗎?我從我的web.config中刪除了代碼,我的身份驗證似乎仍然有效。

回答

1

如果您將應用程序發佈到Azure並且以任何方式使用Session(這包括MVC的TempData),那麼您可能需要爲會話使用某種中央存儲,而不是使用默認的「InProc 「提供者只是將用戶的會話存儲在應用程序自己的內存中。使用Azure,您可以使用SQL Azure或AppFabric Cache(仍在CTP中)。

這裏是AppFabric的一個很好的實驗: http://msdn.microsoft.com/en-us/gg457897

這裏還有一個用於SQL Azure的(不支持):http://blogs.msdn.com/b/sqlazure/archive/2010/08/04/10046103.aspx

這是因爲你可以有多發性情況下運行,或者您的實例可以在移動任何特定的時刻。

這聽起來像你的應用程序目前不使用會話狀態,所以你不需要擔心它。 (但是,請記住TempData字典在底層使用Session)

+0

事實上,如果使用MVC,則不需要擔心會話狀態。使用ASP.NET會話狀態時出現問題。 – 2011-04-11 10:09:32

+0

@Tudor - 我不確定是否屬於這種情況 - TempData是MVC中的一個常見項目,並且建議使用PRG模式 - 它是傳遞信息和狀態消息的好方法。由於TempData依賴於asp.net會話狀態,因此您有一個問題。 – 2011-04-23 19:34:26