Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 16577|Svar: 1

[ASP.NET] Sessions-tillstånd kan inte serialiseras. I "StateServer" eller "SQLServer"-läge...

[Kopiera länk]
Publicerad på 2017-11-18 21:37:45 | | | |
Sessions-tillstånd kan inte serialiseras. I "StateServer"- eller "SQLServer"-läge kommer ASP.NET att serialisera sessionstillståndsobjekt, så icke-serialiserbara objekt eller MarshalByRef-objekt är inte tillåtna. Samma begränsningar gäller om den anpassade sessionens tillståndslagring utför liknande serialisering i "Custom"-läge.        



Lösning:

Variabler kan inte serialiseras när man tilldelar en session, så försök lägga till [Serializable] i klassen. Problemlösning

[Följetongsbar]
offentlig klass MyClass
{
.......
}

Låt oss prata om [Serializable], som används för att informera kompilatorn om att klassen kan serialiseras

Serialisering avser processen att lagra tillståndet för en objektinstans på ett lagringsmedium. I denna process omvandlas objektets publika och privata fält samt klassens namn (inklusive sammansättningen där klassen finns) till en byteström innan byteströmmen skrivs till dataströmmen. När objektet därefter deserialiseras skapas en identisk kopia av originalobjektet.
När man implementerar serialiseringsmekanismer i en objektorienterad miljö måste det finnas vissa kompromisser mellan användarvänlighet och flexibilitet. Så länge du har tillräcklig kontroll över denna process kan du göra det till stor del automatiskt. Till exempel räcker inte enkel binär serialisering, eller så finns det ett behov av att avgöra vilka fält i en klass som behöver serialiseras av en specifik anledning. Följande avsnitt kommer att utforska de tillförlitliga serialiseringsmekanismer som .NET-ramverket tillhandahåller och lyfta fram några av de viktiga funktioner som gör det möjligt att anpassa serialiseringsprocessen efter dina behov.





Föregående:ASP.NET StateServer som lagrar sessionen
Nästa:sqlserver hur man kopierar en tabell till en annan
 Hyresvärd| Publicerad på 2017-11-19 16:19:48 |
För vissa objekt som ärver från MarshalByRef, såsom DbTransation-objekt, kan de inte serialiseras. Därför kan du inte använda Session för att lagra objekt som ärver typen MarshalByRef.
Lösningen är att använda cachen och session-ID för att emulera sessionen. Cache-klassen kan cacha vilken typ av objekt som helst.
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com