2 Stimmen

Objekt wird in der Sitzung gespeichert, aber beim Abrufen ist es null

Beim Laden der Seite fülle ich mein eigenes Objekt, speichere es in der Session und es wird gespeichert. Wenn ich debugge, kann ich sehen, dass das Objekt in der Session gespeichert ist. Aber wenn ich diese Session-Variable lese, ist sie null.

Überraschenderweise kann ich andere Session-Variablen verwenden.

Allerdings kann ich die Session-Variable abrufen, wenn meine SessionState = "InProc" ist und sie ist null, wenn SessionState='StateServer' oder SessionState='SQLServer'.

Ich habe die Session-TimeOut="20" behalten. Auf der Seite habe ich EnableSessionState="True" hinzugefügt.

Bitte Hilfe, - Prashant C

2voto

Marc Gravell Punkte 970173

Implementiert Ihr Typ ISerializable (direkt oder indirekt, vielleicht über Vererbung)? Der größte Unterschied zwischen in-Prozess und dem Rest ist, dass in-Prozess nicht serialisiert, also sollte Serialization das erste sein, was man sich anschaut.

Es klingt jedoch sehr seltsam - wenn es "aus" wäre, würde ich entweder eine Ausnahme oder ein nicht initialisiertes Objekt erwarten - nicht ein Null. Vielleicht eine dumme Frage, aber hat die eingehende Anfrage definitiv alle richtigen Header/Cookies? Also weiß sie noch, in welcher Sitzung sie ist?

Zur Erklärung, wenn Ihr Typ weder ISerializable implementiert noch [Serializable] hat, würde ich eine Ausnahme erwarten; Sie haben [Serializable] hinzugefügt, aber die Tatsache, dass kein Fehler aufgetreten ist, lässt mich vermuten, dass sich möglicherweise etwas ISerializable im Spiel befindet.

1voto

Arthur Punkte 7771

Sessionstate='StateServer' oder sessionstate='SQLServer' erfordert, dass deine Objekte serialisierbar sind.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X