asp.net Ενδέχεται να παρουσιαστεί πρόβλημα κοινής χρήσης συνεδρίας κατά την ανάπτυξη ή την ανάπτυξη, πώς να κάνετε κοινή χρήση περιόδων σύνδεσης μεταξύ διαφορετικών εφαρμογών; Το έψαξα σήμερα, υπάρχουν πολλές μέθοδοι στο Διαδίκτυο, μεταξύ των οποίων η χρήση της συνεδρίας κοινής χρήσης βάσης δεδομένων SqlServer είναι η πιο συνηθισμένη, αν χρειαστεί να πάτε μόνοι σας στο Baidu, θα βγει. Δεν θα ήταν όμως μεγάλο πρόβλημα αν η βάση δεδομένων δεν ήταν SqlServer αλλά κάτι άλλο σαν την Oracle; Ευτυχώς, σήμερα βρήκα έναν άλλο τρόπο να εφαρμόσω την κοινή χρήση συνεδρίας χωρίς να χρησιμοποιήσω τη βάση δεδομένων, δηλαδή χρησιμοποιώντας τη μέθοδο StateServer. Χωρίς περαιτέρω καθυστέρηση, ρίξτε μια ματιά στα βήματα υλοποίησης:
1. Ανοίξτε το μητρώο, εκτελέστε cmd/regedit και βρείτε τον κόμβο HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\aspnet_state\Parameters
α. Ορίστε την τιμή AllowRemoteConnection σε 1
[β. Ορίστε την τιμή θύρας σε a5b8 (δεκαεξαδικό), δηλαδή δεκαδικό 42424 (προεπιλογή)]
Τα παραπάνω επιτρέπουν κυριολεκτικά την απομακρυσμένη σύνδεση και ρύθμιση θυρών
2. Αλλάξτε τον τύπο εκκίνησης της υπηρεσίας υπολογιστή "ASP.NET State Service" σε Αυτόματη και ξεκινήστε την υπηρεσία ταυτόχρονα.
3. Προσθέστε το κάτω από τον κόμβο system.web στο αρχείο web.config του έργου ιστότοπου Α και του έργου ιστότοπου Β, αντίστοιχα
Θυμηθείτε να αντικαταστήσετε με την IP της υπηρεσίας και τη θύρα που ορίστηκε στο βήμα 1
4. Προσθέστε τον ακόλουθο κώδικα στο Global.asax.cs του έργου ιστότοπου Α και του έργου ιστότοπου Β αντίστοιχα
Δώστε προσοχή σε δύοΤο APPNAME θα πρέπει να οριστεί στο ίδιο。 Τα παραπάνω λύνουν το πρόβλημα της κοινής χρήσης συνεδρίας. Οι παραπάνω λύσεις αναφέρονται εδώ
Τέλος, μπορείτε να ελέγξετε ότι μπορείτε να γράψετε Συνεδρία στο έργο ιστότοπου Α για να διαβάσετε στο έργο ιστότοπου Β ή να γράψετε Seesion στο έργο ιστότοπου Β για να το διαβάσετε στο έργο ιστότοπου Α.
|