Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 16577|Odpowiedź: 1

[ASP.NET] Stany sesji nie mogą być serializowane. W trybie "StateServer" lub "SQLServer"...

[Skopiuj link]
Opublikowano 18.11.2017 21:37:45 | | | |
Stany sesji nie mogą być serializowane. W trybie "StateServer" lub "SQLServer" ASP.NET serializuje obiekty stanu sesji, więc obiekty nieserializowalne lub MarshalByRef nie są dozwolone. Te same ograniczenia obowiązują, jeśli niestandardowy magazyn stanu sesji wykonuje podobną serializację w trybie "Custom".        



Rozwiązanie:

Zmienne nie mogą być serializowane podczas przypisywania sesji, więc spróbuj dodać [Serializable] do klasy. Rozwiązywanie problemów

[Serializowalne]
Klasa publiczna MyClass
{
.......
}

Porozmawiajmy o [Serializable], który służy do informowania kompilatora, że klasa może być serializowana

Serializacja odnosi się do procesu przechowywania stanu instancji obiektu na nośniku pamięci. W tym procesie pola publiczne i prywatne obiektu oraz nazwa klasy (w tym asemble, w którym klasa się znajduje) są przekształcane w strumień bajtów przed zapisaniem strumienia bajtów do strumienia danych. Gdy obiekt jest następnie deserializowany, tworzona jest identyczna kopia oryginalnego obiektu.
Przy wdrażaniu mechanizmów serializacji w środowisku obiektowym muszą istnieć pewne kompromisy między łatwością obsługi a elastycznością. Dopóki masz wystarczającą kontrolę nad tym procesem, możesz uczynić go w dużej mierze automatycznym. Na przykład prosta serializacja binarna nie wystarcza lub trzeba określić, które pola w klasie muszą być serializowane z konkretnego powodu. Poniższe sekcje przyjrzą się niezawodnym mechanizmom serializacji oferowanym przez framework .NET oraz podkreślą niektóre z ważnych funkcji, które pozwalają dostosować proces serializacji do własnych potrzeb.





Poprzedni:ASP.NET StateServer, który przechowuje sesję
Następny:sqlserver jak skopiować jedną tabelę do innej
 Ziemianin| Opublikowano 19.11.2017 16:19:48 |
Dla niektórych obiektów dziedziczących z MarshalByRef, takich jak obiekty DbTransation, nie można ich serializować. Dlatego nie można używać Session do przechowywania obiektów dziedziczących typ MarshalByRef.
Obejściem jest użycie pamięci podręcznej i SessionID do emulacji sesji. Klasa Cache może buforować dowolny typ obiektu.
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com