asp.net Sessionsdelingsproblem kan opstå under udvikling eller implementering, hvordan deler man sessioner mellem forskellige applikationer? Jeg ledte efter det i dag, der findes mange metoder på internettet, hvoraf brugen af SqlServer-databasedelingssessioner er den mest almindelige; hvis du skal gå til Baidu alene, vil det komme frem. Men ville det ikke være et stort problem, hvis databasen ikke var SqlServer, men noget andet som Oracle? Heldigvis fandt jeg i dag en anden måde at implementere sessionsdeling uden at bruge databasen, nemlig ved at bruge StateServer-metoden. Uden yderligere omsvøb, se på implementeringstrinene:
1. Åbn registreringsdatabasen, kør cmd/regedit, og find node HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\aspnet_state\Parameters
a. Sæt AllowRemoteConnection-værdien til 1
[b. Sæt portværdien til a5b8 (hexadecimal), dvs. decimal 42424 (standard)]
Ovenstående tillader bogstaveligt talt fjernforbindelse og indstilling af porte
2. Ændre opstartstypen af computerservicen "ASP.NET State Service" til automatisk, og start tjenesten samtidig.
3. Tilføj det under system.web-noden i web.config-filen på henholdsvis webprojekt A og webprojekt B
Husk at erstatte med IP-adressen på tjenesten og porten sat i trin 1
4. Tilføj følgende kode til Global.asax.cs for henholdsvis webprojekt A og webprojekt B
Læg mærke til toAPPNAME bør sættes til det samme。 Ovenstående løser problemet med sessionsdeling. Ovenstående løsninger er refereret her
Endelig kan du teste, at du kan skrive Session i webprojekt A for at læse i webprojekt B, eller skrive Seesion i webprojekt B for at læse det i webprojekt A.
|