ASP.NET - sovelluksia isännöidään verkkopalvelimilla . Niitä käytetään tilattoman HTTP-protokollan kautta . Periaatteessa, jos sovellus käyttää tilallista vuorovaikutusta, sen on toteutettava tilanhallinta itse. ASP.NET tarjoaa useita tapoja hallita sovellusten tilaa ASP.NETissä [1] :
Sovelluksen tilaa käytetään ensisijaisesti globaalien tietojen tallentamiseen sovelluksen sisällä. Se sijaitsee palvelimen muistissa ja sen avulla voit tallentaa kaikki .NET -tietotyypit . Muuttujien elinikä on sama kuin ASP.NET - sovelluksen käyttöikä . Sovelluksen tilamuuttujat asetetaan ja alustetaan tapahtumassa Application_OnStartensimmäisen sovellusilmentymän latausvaiheessa, ja ne ovat käytettävissä niin kauan kuin viimeinen sovellusilmentymä on olemassa. Nämä muuttujat ovat saatavilla kaikilla verkkosivuilla sisäänrakennetun objektin kautta, Applicationja ne tunnistetaan niiden nimien perusteella [2] .
Näkymän tila viittaa sivutason tilanhallintamekanismiin, jota HTML -sivut käyttävät verkkolomakkeen komponenttien ja widgetien tilan tallentamiseen . Palvelimelle pyydettäessä komponenttien (säätimien) nykyinen tila koodataan ja lähetetään palvelimelle piilotettuun kenttään __VIEWSTATE. Palvelin lähettää muuttujan takaisin, joten kun sivu hahmonnetaan uudelleen, säätimet hahmonnetaan uusimmassa tilassaan. Palvelinpuolella sovellus voi muuttaa näkymän tilaa, jos käsittelytulokset päivittävät ainakin yhden ohjausobjektin sivulla. Kunkin komponentin tila puretaan palvelimella ja asetetaan käytettäväksi ASP.NET -sivuilla kokoelman ViewState[3] kautta .
Istuntotila on joukko käyttäjämuuttujia, jotka ovat edelleen olemassa käyttäjän istunnon aikana. Nämä muuttujat ovat ainutlaatuisia eri käyttäjäistuntotapahtumissa, ja ne ovat saatavilla Session. Nämä istuntomuuttujat voidaan määrittää tuhoutumaan automaattisesti tietyn ajan kuluttua, kun käyttäjä on ollut passiivinen, vaikka istunto ei olisi vielä päättynyt. Asiakaspuolella käyttäjäistunto tunnistetaan evästeen tai istunnon tunnuksen perusteella sen URL -osoitteessa [2] .
ASP.NET tukee seuraavia istuntomuuttujien olemassaolotiloja [2] :
InProc Istuntomuuttujia ylläpidetään ASP.NET - prosessissa . Tässä tilassa muuttujat kuitenkin tuhoutuvat, kun ASP.NET -prosessi käynnistetään uudelleen tai lopetetaan. StateServer Tässä tilassa ASP.NET käynnistää erillisen palvelun ( service ), joka ylläpitää tilamuuttujia. Koska tilanhallinta tapahtuu ASP.NET - prosessin ulkopuolella, tämä vaikuttaa negatiivisesti suorituskykyyn, mutta sallii useiden ASP.NET -instanssien jakaa yhteisen tilapalvelimen, jolloin ASP.NET -sovellus voidaan jakaa tasaisesti eri palvelimien kesken (tasapainotus). ). ladata ja skaalata useille palvelimille). Koska tilanhallintapalvelu toimii ASP.NET:stä riippumattomasti , muuttujia voi esiintyä ASP.NET -prosessin lopettamisen jälkeen . SQLServer Tässä tilassa tilamuuttujat tallennetaan tietokantapalvelimelle ja ovat saatavilla SQL :n kautta . Tilamuuttujat voivat olla olemassa ASP.NET -prosessin lopettamisen jälkeen, kuten edellisessä tapauksessa. Mukautettu Tämä tila edellyttää, että määrität istuntokaupan tarjoajan käyttämällä customProvider-attribuuttia. Yleisimmin käytetty, kun istuntotiedot on tallennettava muuhun tietokantaan kuin SqlServeriin (kuten MySql tai Oracle). Vinossa Istuntotilan hallinta on poistettu käytöstä. Esimerkki istunnosta Session [ "Nimi" ] = "Vasili Pupkin" ; //Istunto["Nimi"] = (objekti); istunto . Lisää ( "Ikä" , 16 ); //Hanki arvo. vastaus . Write (( string ) Istunto [ "Nimi" ] + ": " + Istunto [ "Ikä" ]. ToString () + "-vuotta vanha." ); Tulos kirjoitettu web-palvelimen http-vastaukseenВасилий Пупкин: 16-years old.
Pieni määrä tietoa voidaan siirtää sivulta palvelimelle käyttämällä kyselymerkkijonoparametreja, mikä tarjoaa tilallista tukea. Tämä on yksinkertaisin tapa ylläpitää tilaa ASP.NET-sovelluksissa, ja se kattaa vain yhden sivun. Jos käyttäjä sulkee selaimen, tila menetetään (ellei tilatietojen tallentamiseen käytetä ylimääräisiä temppuja, kuten evästeeseen). Tämän menetelmän haitat ovat:
.NETTO | |
---|---|
Toteutukset | |
Arkkitehtuuri | |
Infrastruktuuri | |
Microsoftin kielet | |
Muut kielet | |
Windows Foundations | |
Komponentit | |
Vertailut |
|
Tulevaisuuden teknologiat | |
Tietolähteet |