28. februar 2011 - 09:54Der er
2 kommentarer og 1 løsning
I ASP.NET kalde en Disconnect metode når siden forlades
Hej
Jeg er ved at leve en side i asp.net. Den bruges til at redigere og oprette noget data vi forskellige tekst felter og dropdowns.
Dataene den viser får den fra en database som den tilgår via en DLL. Dvs at der skal kalles en Connect() metode på dll'en som man så får en session fra som man kalder metoder på.
Når man er færdig skal Disconnect() kaldes. Problemet er at jeg ikke kan finde ud af hvornår brugeren forlader siden. Page_Unload eventen kan ikke bruges da den kaldes hver gang siden er renderet.
Man kunne sætte en timer på unload eventen og så nulstille den i load eventen men det syntes jeg er et hack.
Er der nogen der har en ide om hvad man kan gøre, der er pænere?
Uha, dette lyder som om der er en heftig designfejl et eller andet sted!
Normalt når man bruger en database fra en asp.net side, vil du for hver postback åbne databasen, køre dine queries, og lukke igen. Databaseforbindelsen står aldrig åben!.
Jeg foreslår at du for hver postback kalder Connect, gør det du skal gøre, og kalder disconnect når du er ferdig. Ikke lad forbindelsen være åben under hele sessionen.
Tak for svaret. Du har nok ret. Jeg er rimelig ny mht. ASP.NET så laver det om. Det virker bare lidt som overkill at connected og disconnecte hele tiden :)
De fleste databaser bruger connection-pooling. Dvs, at selvom du lukker en forbindelse, og åbner den igen senere, vil den genbruge forbindelsen. Det koster altså næsten ingenting at lukke og åbne databaseforbindelsen.
Hvis din forbindelse er åben igennem hele sessionen, vil du kraftigt begrænse antal brugere på din webside. Lad os sige at din database understøtter 10 samtiddige brugere; hvis forbindelserne holdes åbne, vil den 11. bruger sættes på vent. Han får altså ikke svar fra siden. Hvis forbindelserne kun holdes åbne når de bruges, vil din side kunne takle hundredevis af samtiddige brugere, selvom databasen kun understøtter 10.
Generelt set skal databaseforbindelserne være åbne i så kort tid som muligt.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.