Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 16577|Απάντηση: 1

[ASP.NET] Οι καταστάσεις συνεδρίας δεν μπορούν να σειριακοποιηθούν. Σε λειτουργία "StateServer" ή "SQLServer"...

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 18/11/2017 9:37:45 μ.μ. | | | |
Οι καταστάσεις συνεδρίας δεν μπορούν να σειριακοποιηθούν. Στη λειτουργία "StateServer" ή "SQLServer", ASP.NET θα σειριοποιήσει αντικείμενα κατάστασης συνεδρίας, επομένως δεν επιτρέπονται μη σειριοποιήσιμα αντικείμενα ή αντικείμενα MarshalByRef. Οι ίδιοι περιορισμοί ισχύουν εάν ο χώρος αποθήκευσης κατάστασης προσαρμοσμένης περιόδου λειτουργίας εκτελεί παρόμοια σειριοποίηση στη λειτουργία "Προσαρμοσμένη".        



Λύση:

Οι μεταβλητές δεν μπορούν να σειριοποιηθούν κατά την εκχώρηση μιας συνεδρίας, επομένως δοκιμάστε να προσθέσετε [Serializable] στην κλάση. Επίλυση προβλήματος

[Σειριοποιήσιμο]
δημόσια τάξη MyClass
{
.......
}

Ας μιλήσουμε για το [Serializable], το οποίο χρησιμοποιείται για να ενημερώσει τον μεταγλωττιστή ότι η κλάση μπορεί να σειριοποιηθεί

Η σειριοποίηση αναφέρεται στη διαδικασία αποθήκευσης της κατάστασης μιας παρουσίας αντικειμένου σε ένα μέσο αποθήκευσης. Σε αυτή τη διαδικασία, τα δημόσια και ιδιωτικά πεδία του αντικειμένου και το όνομα της κλάσης (συμπεριλαμβανομένου του συγκροτήματος στο οποίο βρίσκεται η κλάση) μετατρέπονται σε bytestream πριν γράψουν το bytestream στη ροή δεδομένων. Όταν το αντικείμενο στη συνέχεια αποσειριοποιηθεί, δημιουργείται ένα πανομοιότυπο αντίγραφο του αρχικού αντικειμένου.
Κατά την εφαρμογή μηχανισμών σειριοποίησης σε ένα αντικειμενοστραφή περιβάλλον, πρέπει να υπάρχουν ορισμένες αντισταθμίσεις μεταξύ ευκολίας χρήσης και ευελιξίας. Εφόσον έχετε αρκετό έλεγχο σε αυτή τη διαδικασία, μπορείτε να την κάνετε σε μεγάλο βαθμό αυτόματη. Για παράδειγμα, η απλή δυαδική σειριοποίηση δεν αρκεί ή υπάρχει ανάγκη να προσδιοριστεί ποια πεδία σε μια κλάση πρέπει να σειριοποιηθούν για συγκεκριμένο λόγο. Οι ακόλουθες ενότητες θα διερευνήσουν τους αξιόπιστους μηχανισμούς σειριοποίησης που παρέχονται από το πλαίσιο .NET και θα επισημάνουν ορισμένες από τις σημαντικές δυνατότητες που σας επιτρέπουν να προσαρμόσετε τη διαδικασία σειριοποίησης στις ανάγκες σας.





Προηγούμενος:ASP.NET StateServer που αποθηκεύει τη συνεδρία
Επόμενος:sqlserver πώς να αντιγράψετε έναν πίνακα για έναν άλλο
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 19/11/2017 4:19:48 μ.μ. |
Για ορισμένα αντικείμενα που κληρονομούν από το MarshalByRef, όπως τα αντικείμενα DbTransation, δεν μπορούν να σειριοποιηθούν. Επομένως, δεν μπορείτε να χρησιμοποιήσετε τη συνάρτηση Session για να αποθηκεύσετε αντικείμενα στα οποία μεταβιβάζεται ο τύπος MarshalByRef.
Η λύση είναι να χρησιμοποιήσετε το Cache και το SessionID για να προσομοιώσετε την περίοδο λειτουργίας. Η κλάση Cache μπορεί να αποθηκεύσει προσωρινά οποιονδήποτε τύπο αντικειμένου.
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com