Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 16577|Odgovoriti: 1

[ASP.NET] Stanja seje ni mogoče serializirati. V načinu "StateServer" ali "SQLServer"...

[Kopiraj povezavo]
Objavljeno na 18. 11. 2017 21:37:45 | | | |
Stanja seje ni mogoče serializirati. V načinu »StateServer« ali »SQLServer« ASP.NET serializira objekte stanja seje, zato objekti brez serializacije ali MarshalByRef niso dovoljeni. Enake omejitve veljajo, če shranjevanje stanja seje izvaja podobno serializacijo v načinu "Custom".        



Rešitev:

Spremenljivk ni mogoče serializirati pri dodeljevanju seje, zato poskusite dodati [Serializable] v razred. Reševanje problemov

[Serijsko]
javni razred MyClass
{
.......
}

Pogovorimo se o [Serializable], ki se uporablja za obveščanje prevajalnika, da je razred mogoče serializirati

Serializacija se nanaša na postopek shranjevanja stanja primerka objekta na pomnilniški medij. V tem postopku se javna in zasebna polja objekta ter ime razreda (vključno z asamblerom, v katerem se razred nahaja) pretvorijo v bajtni tok, preden se bajtni tok zapiše v podatkovni tok. Ko je objekt kasneje deserializiran, se ustvari identična kopija izvirnega objekta.
Pri implementaciji mehanizmov serializacije v objektno usmerjenem okolju morajo obstajati določeni kompromisi med enostavnostjo uporabe in prilagodljivostjo. Dokler imate dovolj nadzora nad tem procesom, ga lahko naredite večinoma avtomatskega. Na primer, preprosta binarna serializacija ni dovolj ali pa je treba določiti, katera polja v razredu je treba serializirati iz določenega razloga. Naslednji razdelki bodo raziskali zanesljive mehanizme serializacije, ki jih zagotavlja .NET ogrodje, in izpostavili nekatere pomembne funkcije, ki vam omogočajo prilagoditev procesa serializacije vašim potrebam.





Prejšnji:ASP.NET StateServer, ki shranjuje sejo
Naslednji:SQL Server Kako kopirati eno tabelo v drugo
 Najemodajalec| Objavljeno na 19. 11. 2017 16:19:48 |
Za nekatere objekte, ki podedujejo MarshalByRef, kot so objekti DbTransation, jih ni mogoče serializirati. Zato Session ne morete uporabiti za shranjevanje objektov, ki podedujejo tip MarshalByRef.
Rešitev je uporaba predpomnilnika in SessionID za emulacijo seje. Razred Cache lahko predpomni katerikoli tip objekta.
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com