Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 16577|Atbildi: 1

[ASP.NET] Sesijas stāvokļus nevar serializēt. Režīmā "StateServer" vai "SQLServer"...

[Kopēt saiti]
Publicēts 18.11.2017 21:37:45 | | | |
Sesijas stāvokļus nevar serializēt. "StateServer" vai "SQLServer" režīmā ASP.NET serializēs sesijas stāvokļa objektus, tāpēc neserializējami objekti vai MarshalByRef objekti nav atļauti. Tie paši ierobežojumi tiek piemēroti, ja pielāgotā sesijas stāvokļa krātuve veic līdzīgu serializāciju režīmā "Pielāgots".        



Šķīdums:

Piešķirot sesiju, mainīgos nevar serializēt, tāpēc mēģiniet klasei pievienot [Serializable]. Problēmu risināšana

[Seriāls]
publiskā klase MyClass
{
.......
}

Parunāsim par [Serializable], kas tiek izmantots, lai informētu kompilatoru, ka klasi var serializēt

Serializācija attiecas uz objekta instances stāvokļa glabāšanas procesu datu nesējā. Šajā procesā objekta publiskie un privātie lauki un klases nosaukums (ieskaitot montāžu, kurā atrodas klase) tiek pārvērsti par baitu plūsmu pirms baitu plūsmas rakstīšanas datu plūsmā. Kad objekts pēc tam tiek deserializēts, tiek izveidota identiska oriģinālā objekta kopija.
Ieviešot serializācijas mehānismus objektorientētā vidē, ir jābūt dažiem kompromisiem starp lietošanas ērtumu un elastību. Kamēr jums ir pietiekama kontrole pār šo procesu, jūs varat to padarīt lielā mērā automātisku. Piemēram, ar vienkāršu bināro serializāciju nepietiek, vai arī ir jānosaka, kuri klases lauki ir jāserializē konkrēta iemesla dēļ. Nākamajās sadaļās tiks izpētīti uzticamie serializācijas mehānismi, ko nodrošina .NET framework, un izceltas dažas svarīgas funkcijas, kas ļauj pielāgot serializācijas procesu savām vajadzībām.





Iepriekšējo:ASP.NET StateServer, kas glabā sesiju
Nākamo:sqlserver: kā kopēt vienu tabulu citai
 Saimnieks| Publicēts 19.11.2017 16:19:48 |
Dažiem objektiem, kas mantoti no MarshalByRef, piemēram, DbTransation objektiem, tos nevar serializēt. Tādēļ nevar izmantot sesiju, lai glabātu objektus, kas pārmanto tipu MarshalByRef.
Risinājums ir izmantot kešatmiņu un sesijas ID, lai emulētu sesiju. Kešatmiņas klase var kešatmiņā saglabāt jebkura veida objektus.
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com