SQL ServerによってサポートされるASP.NETセッション状態からキーのリストを取得する方法は?
質問
できれば使い捨ての.aspxページを作成せずに、SQLサーバーに保存されているASP.NETセッション状態データを視覚化する良い方法を探しています。キー(および可能であればシリアル化されたデータ)のリストをSQLサーバーから直接取得する良い方法はありますか?
理想的には、データベースに対していくつかのT-SQLコマンドを直接実行して、特定のセッションIDに保存されているセッションキーのリストを取得したいと思います。各キーのシリアル化されたデータも確認できたらうれしいです。
解決
少し詳しく説明してください。HttpContextへの参照はありませんか(バックエンドコードおよびFYIからも使用できます)、組み込みのシリアル化およびキーディクショナリを使用できませんか?
編集、更新への応答。 ASPStateデータベースは、必要に応じて一時テーブルを作成および破棄し、クエリできる永続的なテーブルがなく、ストアドプロシージャを見て、" TempGetItem"の行に沿って1つ見つける必要があると思います。このsprocを使用できます。直接、またはソースを調べて詳細を確認してください。
他のヒント
sqlサーバーセッションモードでasp.netアプリケーションを実行すると、dbo.ASPStateTempApplicationsとdbo.ASPStateTempSessionsの2つのテーブルが作成されます。最初のテーブルからアプリケーションを見つけ、それを使用して2番目のテーブルから開いているセッションを照会できます。 ASPStateTempSessionsテーブルには、SessionDataShortとSessionDataLongの2つの列が格納されます。すべてのセッション情報はバイナリです。オブジェクトを再度シリアル化解除して内容を表示するには、セッションに保存されているオブジェクトの種類を知る必要があります。
最近これを試しましたが、うまくいきます。実際、複雑なアプリケーションの場合、セッションデータを表示および解析するためのツールをいくつか用意して、不要なオブジェクトを保存せずにデータベースに長期間残しておくことをお勧めします。