Laden...

Session Objekt in Datenbank speichern

Erstellt von PeterK vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.046 Views
P
PeterK Themenstarter:in
43 Beiträge seit 2006
vor 16 Jahren
Session Objekt in Datenbank speichern

Hallo zusammen!

Ich möchte ein Session-Objekt in einer Datenbank oder Datei ablegen.

Beispielsweise:


Session["DT"] = new DataTable();
[CSHARP]

Wäre prima, wenn ich jetzt Session["DT"]  so ablegen könnte, dass ich das Ding
irgendwann wieder laden kann. Das Objekt kann aber beliebig sein,
das DataTable ist nur ein Beispiel.


Hat jemand eine Idee?


Gruss

Peter
195 Beiträge seit 2006
vor 16 Jahren

Ich denke du kannst das irgendwie in einem varbinary Feld ablegen und wieder laden.
Also eine Tabelle mit ID bzw. Namen und einer Session Spalten und dann sollte es gehen. Da kannst du dann so ziemlich alles rein speichern, musst das halt nur umwandeln in einem Byte[].

P
PeterK Themenstarter:in
43 Beiträge seit 2006
vor 16 Jahren

Hast Du mal 2 bis 3 Zeilen Beispielcode für die Umwandlung?

N
22 Beiträge seit 2008
vor 16 Jahren

Speichere deine Objekte serialisiert in ein großes varchar feld. Beim Abrufen musst du es nur zurück serialisieren und du hast wieder dein Objekt. Als Key könnte man sich die SessionId selber merken. Die Klasse die du Speichern möchtest muss nur serialisierbar sein.

5.941 Beiträge seit 2005
vor 16 Jahren

Hallo Peter

De- / Serialisierung ist eine Möglichkeit.
Aber wieso möchtest du das tun?

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

N
22 Beiträge seit 2008
vor 16 Jahren

Ich könnte mir vorstellen das er auf persistente Zustände für den User abziehlt und das die Objekte dann auch wieder zur Verfügung stehen wenn der User sich neu anmeldet und seine Arbeit fortsetzen möchte. Das wäre für mich so ziemlich der einzigste Grund dies zu tun, ob das allerdings auch der Grund des TE ist?

I
256 Beiträge seit 2005
vor 16 Jahren

Falls SQL Server verwendet wird gibts einen eigene Session Provider.

-> sollte fast alles automatisch gehen.

lg

5.941 Beiträge seit 2005
vor 16 Jahren

Hallo zusammen

Die State Mechanismen von ASP.NET sollten nicht genutzt werden,
um ganze Objektstati in ihrer eigentlichen Form zu speichern.
Sondern eher Informationen über den Status, damit man diesen wiederherstellen kann.

Der Grund ist einfach, ASP.NET bzw. HTTP ist statuslos, und mit diesem Wissen und dieser Einschränkung sollte auch programmiert werden.
Zudem ist eine ASP.NET Anwendung automatisch eine Multiuser Anwendung, d.h. bei einem zu grossen Status, kann es schnell zu Performanceproblemen kommen.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011