Come ottenere l'elenco di chiavi dallo stato della sessione ASP.NET supportato dal server SQL?

StackOverflow https://stackoverflow.com/questions/153912

  •  03-07-2019
  •  | 
  •  

Domanda

Sto cercando un buon modo per visualizzare i dati sullo stato della sessione ASP.NET memorizzati nel server SQL, preferibilmente senza creare una pagina aspx usa e getta. C'è un buon modo per ottenere un elenco delle chiavi (e dei dati serializzati, se possibile) direttamente dal server SQL?

Idealmente, vorrei eseguire alcuni comandi T-SQL direttamente sul database per ottenere un elenco di chiavi di sessione che sono state memorizzate per un determinato ID di sessione. Sarebbe bello vedere anche i dati serializzati per ogni chiave.

È stato utile?

Soluzione

Puoi elaborare un po ', non c'è alcun riferimento a un HttpContext disponibile (puoi usarlo anche da codice backend e FYI), che ti impedisce di utilizzare il dizionario di serializzazione e chiavi incorporato?

MODIFICA, in risposta al tuo aggiornamento. Credo che il database ASPState crei e distrugga le tabelle temporanee secondo necessità, non ha tabelle permanenti su cui è possibile eseguire query, dare un'occhiata alle procedure memorizzate e dovresti trovarne una sulla falsariga di "TempGetItem", puoi usare questo sproc direttamente o esaminane la fonte per ulteriori approfondimenti.

Altri suggerimenti

Quando si esegue l'applicazione asp.net con la modalità sessione server sql, vengono create due tabelle, dbo.ASPStateTempApplications e dbo.ASPStateTempSessions. È possibile trovare l'applicazione dalla prima tabella e utilizzarla per eseguire query sulle sessioni aperte dalla seconda tabella. La tabella ASPStateTempSessions memorizza due colonne SessionDataShort e SessionDataLong. Tutte le informazioni sulla sessione sono binarie. È necessario conoscere i tipi di oggetti archiviati nella sessione se si desidera deserializzarli nuovamente e visualizzare i contenuti.

L'ho provato di recente e funziona benissimo. In effetti, per un'applicazione complessa vale la pena avere alcuni strumenti per visualizzare e analizzare i dati di sessione per assicurarsi che non archiviamo oggetti indesiderati e li lasciamo nel database a lungo - ha il potenziale di rallentare le cose.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top