Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 16577|Antwort: 1

[ASP.NET] Sitzungszustände können nicht serialisiert werden. Im "StateServer"- oder "SQLServer"-Modus...

[Link kopieren]
Veröffentlicht am 18.11.2017 21:37:45 | | | |
Sitzungszustände können nicht serialisiert werden. Im "StateServer"- oder "SQLServer"-Modus serialisiert ASP.NET Sitzungszustandsobjekte, sodass nicht-serialisierbare Objekte oder MarshalByRef-Objekte nicht erlaubt sind. Die gleichen Einschränkungen gelten, wenn der benutzerdefinierte Sitzungszustandstore eine ähnliche Serialisierung im "Custom"-Modus durchführt.        



Lösung:

Variablen können bei der Zuweisung einer Sitzung nicht serialisiert werden, also versuche, [Serialisierbar] zur Klasse hinzuzufügen. Problemlösung

[Serialisierbar]
öffentliche Klasse MyClass
{
.......
}

Sprechen wir über [Serializable], das verwendet wird, um den Compiler darüber zu informieren, dass die Klasse serialisiert werden kann

Serialisierung bezeichnet den Prozess, den Zustand einer Objektinstanz auf einem Speichermedium zu speichern. In diesem Prozess werden die öffentlichen und privaten Felder des Objekts sowie der Name der Klasse (einschließlich der Assembly, in der sich die Klasse befindet) in einen Bytestream umgewandelt, bevor der Bytestream in den Datenstrom geschrieben wird. Wenn das Objekt anschließend deserialisiert wird, entsteht eine identische Kopie des ursprünglichen Objekts.
Bei der Implementierung von Serialisierungsmechanismen in einer objektorientierten Umgebung müssen gewisse Kompromisse zwischen Benutzerfreundlichkeit und Flexibilität bestehen. Solange du genug Kontrolle über diesen Prozess hast, kannst du ihn weitgehend automatisch machen. Zum Beispiel reicht eine einfache binäre Serialisierung nicht aus, oder es muss bestimmt werden, welche Felder in einer Klasse aus einem bestimmten Grund serialisiert werden müssen. Die folgenden Abschnitte werden die zuverlässigen Serialisierungsmechanismen des .NET-Frameworks untersuchen und einige der wichtigen Funktionen hervorheben, die es Ihnen ermöglichen, den Serialisierungsprozess an Ihre Bedürfnisse anzupassen.





Vorhergehend:ASP.NET StateServer, der die Sitzung speichert
Nächster:sqlserver: Wie man eine Tabelle auf eine andere kopiert.
 Vermieter| Veröffentlicht am 19.11.2017 16:19:48 |
Für einige Objekte, die von MarshalByRef erben, wie zum Beispiel DbTransation-Objekte, können sie nicht serialisiert werden. Daher kann man Session nicht verwenden, um Objekte zu speichern, die den Typ MarshalByRef erben.
Der Workaround besteht darin, den Cache und die SessionID zu verwenden, um die Sitzung zu emulieren. Die Cache-Klasse kann jede Art von Objekt zwischenspeichern.
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com