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
Mein Projekt: www.exoda.de - einfach online Rechnung schreiben
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[].
Hast Du mal 2 bis 3 Zeilen Beispielcode für die Umwandlung?
Mein Projekt: www.exoda.de - einfach online Rechnung schreiben
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.
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
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?
Falls SQL Server verwendet wird gibts einen eigene Session Provider.
-> sollte fast alles automatisch gehen.
lg
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