2012-09-28 16 views
9

Qualcuno potrebbe essere abbastanza gentile da spiegare o indicare un articolo che spiega come l'ambito di classi e metodi statici interagisce con l'ambito di una sessione utente ASP.NET.ASP.NET Classi statiche e sessioni di asp.net

Ecco la situazione in modo più preciso che spiega la mia domanda:

  1. utente A accede in un sito web asp.net.
  2. Mentre si fa qualcosa l'utente A usa un metodo statico che inizializza alcuni dati.
  3. L'utente B si collega allo stesso sito Web asp.net.
  4. L'utente B ha lo stesso metodo statico.

I dati sono già stati inizializzati quando l'utente B lo ha colpito?

E se la sessione di asp.net dell'utente A scade prima che l'utente B raggiunga il sito Web?

risposta

11

I dati statici sono attivi finché il processo è in esecuzione. È collegato al tipo.

Se i dati inizializzati si trovano in un contesto statico, quando l'utente B raggiunge il metodo, sarà già inizializzato.

Le sessioni non sono rilevanti qui - solo il processo.

Se il processo viene riciclato, i dati dovranno essere reinizializzati.

2

controllare questi post: Why does my ASP.Net static function's "context" crossover between user sessions?

What is the scope of a Static Class?

C# Static variables - scope and persistence

http://msdn.microsoft.com/en-us/library/ms173138(v=vs.100).aspx

In breve:

sono i dati già inizializzate una volta l'utente B colpisce?

Anche ciò che se la sessione di asp.net dell'utente A scade prima che l'utente B colpisce il sito web?

utente B accederà dati inizializzati dall'utente A

dati statici è condivisa tra l'intero dominio di applicazione della vostra webapp. È condiviso tra tutti i thread che servono le richieste nella tua app web , non è legata a una sessione/thread/utente in alcun modo, ma alla webapp nel suo complesso.

Problemi correlati