Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 16577|Răspunde: 1

[ASP.NET] Stările de sesiune nu pot fi serializate. În modul "StateServer" sau "SQLServer"...

[Copiază linkul]
Postat pe 18.11.2017 21:37:45 | | | |
Stările de sesiune nu pot fi serializate. În modul "StateServer" sau "SQLServer", ASP.NET va serializa obiectele stării de sesiune, astfel încât obiectele neserializabile sau obiectele MarshalByRef nu sunt permise. Aceleași restricții se aplică dacă magazinul de stare al sesiunii personalizate efectuează o serializare similară în modul "Custom".        



Soluție:

Variabilele nu pot fi serializate când se atribuie o sesiune, așa că încearcă să adaugi [Serializable] la clasă. Rezolvarea problemelor

[Serializabil]
clasa publică MyClass
{
.......
}

Să vorbim despre [Serializable], care este folosit pentru a informa compilatorul că clasa poate fi serializată

Serializarea se referă la procesul de stocare a stării unei instanțe de obiect pe un mediu de stocare. În acest proces, câmpurile publice și private ale obiectului și numele clasei (inclusiv asamblarea în care se află clasa) sunt convertite într-un flux de octeți înainte de a scrie fluxul de octeți în fluxul de date. Când obiectul este ulterior deserializat, se creează o copie identică a obiectului original.
Când se implementează mecanisme de serializare într-un mediu orientat pe obiecte, trebuie să existe unele compromisuri între ușurința utilizării și flexibilitate. Atâta timp cât ai suficient control asupra acestui proces, îl poți face în mare parte automat. De exemplu, simpla serializare binară nu este suficientă sau este nevoie să determinăm care câmpuri dintr-o clasă trebuie serializate dintr-un anumit motiv. Secțiunile următoare vor explora mecanismele fiabile de serializare oferite de cadrul .NET și vor evidenția câteva dintre caracteristicile importante care vă permit să personalizați procesul de serializare în funcție de nevoile dumneavoastră.





Precedent:ASP.NET StateServer care stochează Session
Următor:sqlserver cum să copiezi un tabel pentru altul
 Proprietarul| Postat pe 19.11.2017 16:19:48 |
Pentru unele obiecte care moștenesc din MarshalByRef, cum ar fi obiectele DbTransation, ele nu pot fi serializate. Prin urmare, nu poți folosi Session pentru a stoca obiecte care moștenesc tipul MarshalByRef.
Soluția este să folosești Cache-ul și SessionID pentru a emula Session. Clasa Cache poate stoca în cache orice tip de obiect.
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com