Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 16577|Válasz: 1

[ASP.NET] A session állapotok nem serializálhatók. "StateServer" vagy "SQLServer" módban...

[Linket másol]
Közzétéve 2017. 11. 18. 21:37:45 | | | |
A session állapotok nem serializálhatók. "StateServer" vagy "SQLServer" módban ASP.NET sorializálja a session állapot objektumokat, így nem serializálható objektumok vagy MarshalByRef objektumok nem engedélyezettek. Ugyanezek a korlátozások érvényesek, ha az egyedi session állapot tároló hasonló sorozatozást végez "Custom" módban.        



Megoldás:

A változókat nem lehet soriálisítani Session hozzárendelésekor, ezért próbáld meg hozzáadni a [Serializable] (Serializable] opciót az osztályhoz. Problémamegoldás

[Sorozatosítható]
public class MyClass
{
.......
}

Beszéljünk a [Serializable]-ról, amelyet arra használnak, hogy a fordítót tájékoztatják, hogy az osztály serializálható

A serializáció azt jelenti, hogy egy objektumpéldány állapotát tároló eszközre tárolják. Ebben a folyamatban az objektum nyilvános és privát mezői, valamint az osztály neve (beleértve az osztály összeállítását is) bájtfolyammá alakítják, mielőtt a bájtfolyamot az adatfolyamba írnák. Amikor az objektumot később deserializálják, az eredeti objektum azonos másolata jön létre.
A serializációs mechanizmusok megvalósításakor objektumorientált környezetben kell lennie kompromisszumoknak a használat egyszerűsége és a rugalmasság között. Amíg elegendő kontrollod van ezen a folyamatnak, nagyrészt automatikussá teheted. Például az egyszerű bináris serializáció nem elegendő, vagy szükség van arra, hogy meghatározzuk, mely mezőket kell egy osztályban sorolni. A következő részek bemutatjuk a .NET keretrendszer megbízható serializációs mechanizmusait, és kiemeljük azokat a fontos funkciókat, amelyek lehetővé teszik, hogy a sorozatozási folyamatot az igényeidhez igazítsd.





Előző:ASP.NET StateServer tárolja a Sessiont
Következő:SQL Server hogyan másolj egy táblát másikba
 Háziúr| Közzétéve 2017. 11. 19. 16:19:48 |
Néhány olyan objektumnál, amely a MarshalByRef-től örököl, például a DbTransation objektumok, nem serializálhatók. Ezért nem használhatod a Session-t olyan objektumok tárolására, amelyek a MarshalByRef típust öröklik.
A megoldás az, hogy a Cache és a SessionID segítségével emuláljuk a Sessiont. A Cache osztály bármilyen típusú objektumot gyorsantározhat.
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com