2012-02-03 14 views
6

Mimo że tytuł pytania wydaje się nieco subiektywny, jestem pewien, że nie ma wiele do omówienia. Obecnie pracuję nad projektem MVC, w którym używam kontener TemData w niektórych obszarach. Kiedy czytam dokumentację w MSDN, wydaje się, że użycie TempData tworzy sesję i że po odczytaniu dane, które przechowujemy w tempdacie, zniknęły. Jestem w porządku z tą koncepcją, jednak rzeczą, która podsłuchiwała mnie dziś rano, jest to, jak się ona zachowuje, gdy hostujesz swoją aplikację w środowisku Web Farm.MVC 3 Wady pojemników tempdata

Co jeżeli żądanie GET jest przekazywana do Server 1, który tworzy TempData i późniejsze żądania GET/POST jest wysyłany do SERWERZE 2.

mogę być całkowicie błędne z tego założenia, ale ja po prostu potrzebują wyjaśnienia w tej chytrości.

Wszelkie dane wejściowe będą głęboko doceniane ...

Pozdrawiam!

Odpowiedz

2

Po przeprowadzeniu badań scenariusz, który opublikowałem w moim pytaniu, jest nieunikniony, jeśli używasz zmiennych sesji w swoich aplikacjach. Najlepszą rzeczą, jaką możemy zrobić, to ograniczyć ilość danych, które moglibyśmy przechowywać w sesji. Poza tym, jeśli nadal potrzebujemy korzystać z sesji w środowisku webfarm/multi-server, możemy dokonać pewnych zmian konfiguracji. Oto bardzo przydatny artykuł na temat zarządzania sesją pamięci masowej.

ASP.NET Session how to FAQs

0

Tak, domyślnie w sklepie ASP.NET MVC TempData w sesji. Jeśli sesja jest inproc (domyślnie) i znajdujesz się w farmie sieciowej, możesz nie otrzymać poprawnych danych sesji dla następnego żądania. Jeśli jesteś w formie internetowej, użyj innej metody przechowywania sesji, takiej jak serwer stanu lub serwer sql.