asp.net Problemet med sesjonsdeling kan oppstå under utvikling eller distribusjon, hvordan deler man sesjoner mellom ulike applikasjoner? Jeg lette etter det i dag, det finnes mange metoder på Internett, blant annet er bruk av SqlServer databasedelingsøkt den vanligste, hvis du må gå til Baidu alene, vil det komme frem. Men ville det ikke vært et stort problem hvis databasen ikke var SqlServer, men noe annet som Oracle? Heldigvis fant jeg i dag en annen måte å implementere sesjonsdeling uten å bruke databasen, nemlig å bruke StateServer-metoden. Uten videre, ta en titt på implementeringstrinnene:
1. Åpne registeret, kjør cmd/regedit, og finn noden HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\aspnet_state\Parameters
a. Sett verdien AllowRemoteConnection til 1
[b. Sett portverdien til a5b8 (heksadesimal), altså desimalt 42424 (standard)]
Ovenstående tillater bokstavelig talt fjerntilkobling og innstilling av porter
2. Endre oppstartstypen på datatjenesten "ASP.NET State Service" til automatisk, og starte tjenesten samtidig.
3. Legg det til under system.web-noden i web.config-filen til nettsideprosjekt A og nettsideprosjekt B, henholdsvis
Husk å erstatte med IP-adressen til tjenesten og porten som er satt i steg 1
4. Legg til følgende kode i Global.asax.cs for nettsideprosjekt A og nettsideprosjekt B henholdsvis.
Følg med på toAPPNAME bør settes til det samme。 Ovenstående løser problemet med sesjonsdeling. Løsningene ovenfor er referert til her
Til slutt kan du teste at du kan skrive Session i nettsideprosjekt A for å lese i nettsideprosjekt B, eller skrive Seesion i nettsideprosjekt B for å lese det i nettsideprosjekt A.
|