Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 19080|Antwoord: 3

[ASP.NET] ASP.NET StateServer die de sessie opslaat

[Link kopiëren]
Geplaatst op 18-11-2017 21:20:15 | | | |

Omdat het bedrijf de server moet belasten, zet het webproject er één uit op elk van de twee front-end servers (web1 en web2). Maar sessies worden gebruikt in projecten. Wanneer je voor het eerst op web1 terechtkomt, kun je van web1 naar web2 springen omdat de belasting na web1 kan toenemen.
Ik heb veel informatie gevonden op het internet, en ik begrijp ook de configuratie in web.config
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="30" cookieless="AutoDetect" />
Veel voorbeelden op het internet zijn stateConnectionString="tcpip=127.0.0.1:42424", wat natuurlijk prima is op een webserver, maar wanneer je stateConnectionString verandert naar stateConnectionString="tcpip=192.168.1.82: 42424", zullen er problemen zijn met beide frontends. Microsoft gaf geen specifieke oplossing, en de voorbeelden op MSDN wijzen ook naar 127.0.0.1. Later, na onderzoek en overleg met experts, realiseerde ik me dat ik het register van de server die Sessin opslaat, moest aanpassen, hier is het 192.168.1.82, en de wijziging is als volgt:
Pas het register aan:

HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Services"aspnet_state"Parameters



AllowRemoteConnection=1



Daarna start de ASP.NET State Service opnieuw



De verbindingsconfiguratie is als volgt:

<sessionState mode="StateServer"
stateConnectionString="tcpip=192.168.1.200:42424" cookieless="AutoDetect"
timeout="60" />

Daarna was het na testen weer oké. Hopelijk helpt het anderen.
Er is nog een ander probleem dat ik nog steeds niet begrijp. De wap-pagina die ik heb gemaakt zal de gegevens in ViewState op de pagina hebben opgeslagen, en wanneer de pagina constant wordt ververst, gaat de data verloren en duurt de tijd nooit meer dan 20 minuten. Ik weet niet of het een bug van Microsoft is of wat, dit probleem verschijnt niet op webpagina's. Oplossing.
Na een periode van onderzoek is het het beste om minder viewstate te gebruiken op de WAP-pagina, en als de asp.net state-service is ingeschakeld, kun je cookieless op true zetten, anders gaat de sessie verloren.




Vorig:Eenvoudige pakketrefactoring voor Autofac Container
Volgend:Sessietoestanden kunnen niet worden geserialiseerd. In "StateServer" of "SQLServer"-modus...
 Huisbaas| Geplaatst op 18-11-2017 21:21:34 |
ASP.NET sessiestatusmodule <Sessionstate>bepaalt de vier mogelijke waarden van de tag in het Web.config-bestand < de moduseigenschap van de tag onder de System.web>tag: Off, Inproc StateServer en SQLserver.    1 Inproc is de standaardinstelling
Het maakt "cookieloze" sessies mogelijk, evenals het opslaan van sessiegegevens buiten de server. ASP.NET sessiestatusmodule is als volgt geconfigureerd in het Web.config-bestand:
 Huisbaas| Geplaatst op 26-02-2018 11:02:52 |
Mijn eigen configuratie


 Huisbaas| Geplaatst op 10-07-2022 21:58:32 |
ASP.NET 4 biedt nu ingebouwde ondersteuning voor het comprimeren van sessiegegevens om sessies buiten het proces op te slaan. Om deze functie in te schakelen, stelt u simpelweg incompressionEnabledDe eigenschap staat op "waar", zoals weergegeven in het volgende codefragment:



ASP.NET zal de .NET Framework System.IO.Compression.GZipStream-klasse gebruiken om de sessietoestand te comprimeren (en decomprimeren).
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com