Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 19080|Odpověď: 3

[ASP.NET] ASP.NET StateServer, který ukládá Session

[Kopírovat odkaz]
Zveřejněno 18.11.2017 21:20:15 | | | |

Protože firma potřebuje server vyvážit zatížení, webový projekt nasadí jeden na každý ze dvou front-end serverů (web1 a web2). Ale sezení se používají v projektech. Když se poprvé dostanete na web1, je možné přeskočit z web1 na web2, protože zátěž se může po web1 zvýšit.
Našel jsem spoustu informací z internetu a také rozumím konfiguraci ve web.config
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="30" cookieless="AutoDetect" />
Mnoho příkladů na internetu je stateConnectionString="tcpip=127.0.0.1:42424", což je samozřejmě v pořádku na webovém serveru, ale když změníte stateConnectionString na stateConnectionString="tcpip=192.168.1.82: 42424", budou problémy s oběma frontendy. Microsoft neposkytl konkrétní řešení a příklady na MSDN také ukazují na 127.0.0.1. Později, po výzkumu a konzultaci s odborníky, jsem si uvědomil, že musím upravit registr serveru, který ukládá Sessin, zde je 192.168.1.82 a úprava je následující:
Upravte registr:

HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Services"aspnet_state"Parametry



AllowRemoteConnection=1



Pak znovu spusťte ASP.NET státní službu



Konfigurace spojení je následující:

<sessionState mode="StateServer"
stateConnectionString="tcpip=192.168.1.200:42424" cookieless="AutoDetect"
časový limit="60" />

Po tom už bylo po testování v pořádku. Doufám, že to pomůže ostatním.
Je tu ještě jeden problém, kterému stále nerozumím. Stránka wap, kterou jsem vytvořil, bude mít data uložená ve ViewState na stránce a když se stránka neustále obnovuje, data v ní se ztratí a čas nikdy nepřesáhne 20 minut. Nevím, jestli je to chyba od Microsoftu, nebo co, tento problém se na webových stránkách neobjevuje. Řešení.
Po určitém zkoumání je nejlepší použít méně stavu zobrazení na stránce WAP, a pokud je služba asp.net stav povolena, je nejlepší nastavit bezerotnou hodnotu na true, jinak se relace ztratí.




Předchozí:Jednoduché refaktorování balíčků pro Autofac Container
Další:Stavy relace nelze serializovat. V režimu "StateServer" nebo "SQLServer"...
 Pronajímatel| Zveřejněno 18.11.2017 21:21:34 |
ASP.NET modul stavu relace <Sessionstate>určuje čtyři možné hodnoty tagu ve Web.config souboru < vlastnosti mode tagu pod tagem System.web>: Off, Inproc StateServer a SQLserver.    1 Inproc je výchozí nastavení
Umožňuje "cookieless" relace i ukládání dat relací mimo server. ASP.NET modul stavu relace je v souboru Web.config konfigurován následovně:
 Pronajímatel| Zveřejněno 26.02.2018 11:02:52 |
Moje vlastní konfigurace


 Pronajímatel| Zveřejněno 10.07.2022 21:58:32 |
ASP.NET 4 nyní poskytuje vestavěnou podporu pro kompresi dat relací pro ukládání relací, které nejsou ve fázi zpracování. Pro povolení této funkce stačí nastavitcompressionEnabledVlastnost je nastavena na "true", jak je ukázáno v následujícím úryvku kódu:



ASP.NET použije třídu .NET Framework System.IO.Compression.GZipStream ke kompresi (a dekompresi) stavu relace.
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com