2010-11-09 8 views
16

lettura Guru-Gu's blog post about ASP.NET MVC3 hitting RC, egli dice: -Quali sono alcuni scenari di avere un controller Session-less in ASP.NET MVC3?

Session-less di supporto Controller

È ora possibile indicare se si desidera una classe controller da utilizzare stato sessione - e in tal caso se si desidera che essere leggere/scrivere o readonly.read/write o readonly.

Qualcuno può spiegare quali sono alcuni scenari che qualcuno potrebbe desiderare di avere un controller senza sessione? o un controller di sola lettura?

Ho sempre creato un separate IIS website which I use to handle all static images/content and then have this same website have session state turned off ... quindi nessun cookie viene inviato sul filo. È uno scenario simile?

risposta

25

Gu ha commentato questo. Citando:

Le note di rilascio coprono questo più (si possibile scaricarli dal link per il download sopra). Lo stato della sessione è progettato in modo che una sola richiesta da un utente/sessione particolare si verifichi in un'ora . Quindi, se hai una pagina che ha più callback AJAX che si verificano a una volta che saranno processati in modo seriale sul server. Il passaggio a senza sessione significa che eseguiranno in parallelo.

Questo è uno scenario noto in ASP.NET in generale. L'oggetto di sessione per lo stesso utente non è thread-safe. Ciò significa che se lo stesso utente (stesso cookie ID di sessione) invia più richieste a una pagina che utilizza la sessione, tali richieste verranno accodate e elaborate in serie e non in parallelo.

+0

Oh wow. Non l'ho mai saputo (e ho lavorato con ASP dal classico ASP). Wow. Ma ... questo ha senso :) I dati di sessione sono importanti e quindi dovranno essere 'bloccati'. Presumo, forzando l'elaborazione seriale. Hmm ... Quindi questo sarebbe un ottimo candidato per rendere tutti gli Ajax ActionMethods Session-less :) –

+4

Assolutamente, tutte le chiamate AJAX dovrebbero essere rese senza sessioni. A proposito, odio la sessione, quindi in generale faccio la mia intera applicazione senza sessioni :-) –

+1

Quindi non c'è niente che ti serva nella sessione? utente registrato? –

Problemi correlati