Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 16577|Antwoord: 1

[ASP.NET] Sessietoestanden kunnen niet worden geserialiseerd. In "StateServer" of "SQLServer"-modus...

[Link kopiëren]
Geplaatst op 18-11-2017 21:37:45 | | | |
Sessietoestanden kunnen niet worden geserialiseerd. In de "StateServer"- of "SQLServer"-modus zullen ASP.NET sessietoestandsobjecten serialiseren, dus niet-serialiseerbare objecten of MarshalByRef-objecten zijn niet toegestaan. Dezelfde beperkingen gelden als de custom session state store vergelijkbare serialisatie uitvoert in "Custom"-modus.        



Oplossing:

Variabelen kunnen niet worden geserialiseerd bij het toewijzen van een Sessie, dus probeer [Serialiseerbaar] toe te voegen aan de Klasse. Probleemoplossing

[Serieus]
publieke klasse MyClass
{
.......
}

Laten we het hebben over [Serializable], dat wordt gebruikt om de compiler te informeren dat de klasse geserialiseerd kan worden

Serialisatie verwijst naar het proces waarbij de status van een objectinstantie wordt opgeslagen in een opslagmedium. In dit proces worden de publieke en private velden van het object en de naam van de klasse (inclusief de assembly waarin de klasse zich bevindt) omgezet in een bytestream voordat de bytestream naar de datastream wordt geschreven. Wanneer het object vervolgens wordt gedeserialiseerd, wordt een identieke kopie van het oorspronkelijke object gemaakt.
Bij het implementeren van serialisatiemechanismen in een objectgeoriënteerde omgeving moeten er afwegingen zijn tussen gebruiksgemak en flexibiliteit. Zolang je genoeg controle hebt over dit proces, kun je het grotendeels automatisch maken. Bijvoorbeeld, eenvoudige binaire serialisatie is niet voldoende, of er is behoefte aan te bepalen welke velden in een klas om een specifieke reden geserialiseerd moeten worden. De volgende secties verkennen de betrouwbare serialisatiemechanismen die het .NET-framework biedt en belichten enkele belangrijke functies waarmee je het serialisatieproces aan je behoeften kunt afstemmen.





Vorig:ASP.NET StateServer die de sessie opslaat
Volgend:sqlserver hoe je de ene tabel naar de andere kopieert
 Huisbaas| Geplaatst op 19-11-2017 16:19:48 |
Voor sommige objecten die van MarshalByRef erven, zoals DbTransation-objecten, kunnen ze niet worden geserialiseerd. Daarom kun je Session niet gebruiken om objecten op te slaan die het type MarshalByRef erven.
De oplossing is om de Cache en SessionID te gebruiken om de Sessie te emuleren. De Cache-klasse kan elk type object cachen.
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com