Comment obtenir la liste des clés de l'état de session ASP.NET sauvegardé par SQL Server?

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

  •  03-07-2019
  •  | 
  •  

Question

Je cherche un bon moyen de visualiser les données d'état de session ASP.NET stockées dans SQL Server, de préférence sans créer de page .aspx jetable. Existe-t-il un bon moyen d’obtenir une liste des clés (et des données sérialisées, si possible) directement à partir du serveur SQL?

Idéalement, j'aimerais exécuter certaines commandes T-SQL directement sur la base de données pour obtenir une liste des clés de session qui ont été stockées pour un ID de session donné. Ce serait bien de voir les données sérialisées pour chaque clé également.

Était-ce utile?

La solution

Pouvez-vous préciser un peu, n'y a-t-il pas de référence à un HttpContext disponible (vous pouvez également l'utiliser à partir de code back-end), ce qui vous empêche d'utiliser le dictionnaire intégré de clés de sérialisation?

EDIT, en réponse à votre mise à jour. Je pense que la base de données ASPState crée et détruit les tables temporaires en fonction des besoins. Elle ne contient pas de tables permanentes que vous pouvez interroger. Consultez les procédures stockées et recherchez-en une qui ressemble à celle de "TempGetItem". directement, ou examinez sa source pour plus d'informations.

Autres conseils

Lorsque vous exécutez une application asp.net avec le mode de session serveur SQL, elle crée deux tables, dbo.ASPStateTempApplications et dbo.ASPStateTempSessions. Vous pouvez trouver votre application dans la première table et l'utiliser pour interroger les sessions ouvertes dans la seconde table. La table ASPStateTempSessions stocke deux colonnes SessionDataShort et SessionDataLong. Toutes les informations de session sont binaires. Vous devez connaître les types d’objet enregistrés dans la session si vous souhaitez les désérialiser et en afficher le contenu.

J'ai essayé récemment et cela fonctionne bien. En fait, pour une application complexe, il est utile de disposer d’outils permettant de visualiser et d’analyser les données de session afin de s’assurer que nous ne stockons pas d’objets indésirables et ne les conservons pas longtemps dans la base de données. Cela pourrait ralentir les choses.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top