[asp.net] session variabelen gaan verloren

Pagina: 1
Acties:
  • 263 views sinds 30-01-2008
  • Reageer

  • dominion99
  • Registratie: December 2001
  • Laatst online: 07-06 09:49
Ik heb een website die gebruik maakt van session variabelen
het zijn er niet zo veel maar 5 of zo, en allemaal strings

De timeout is nu ingesteld op 60 min.

Maar schijnbaar werkt dit niet altijd. Soms log je in, en wordt je er zo weer binnen korte tijd eruit gegooid. de website staat op een Windows 2000 server servicepack 3 en heeft IIS en een SQL 2000 server (verder kale installatie)..

Ik heb in de pageload een functie checksessie staan, deze controleert de sessie variabelen op aanwezigheid. Zo niet dan worden de gebruikers zonder pardon doorgestuurd naar de loginpagina.


Dat gebeurt dus ook als ze allemaal gegevens hebben ingevoerd en iets willen invoeren in de DB, dat is dus vrij vervelend.

Ik kan die check niet weghalen omdat de gegevens die ingevoerd altijd gebruik maken van een session variabele nl KlantId.

Ik heb ook gelezen dat je een SQL server kunt gebruiken voor het opslaan van de variabelen. Maar is dit een oplossing voor mijn probleem?

Het is ongeveer 25 % langzamer omdat er 2x de DB geraadpleegd wordt (1x ophalen en 1x wegschrijven)
Maar het zijn allemaal simpele datatypen dus er hoeft niets geconverteerd te worden.

Heeft iemand hier ervaring mee, of misschien een andere simpele oplossing?

Ik kan natuurlijk ook informatie in de viewstate zetten zodra iemand gegevens gaat wijzigen. Maar is dat wel een goede oplossing?

  • Xion
  • Registratie: November 2000
  • Laatst online: 22:39
Ik neem aan dat je die 60 min. bij "Home Directory >> Configuration >> App Options" hebt ingesteld, net als de rest van de Sessie instellingen.

probeer anders de volgende regel in de kop van je pagina's te zetten:
code:
1
<%@ Language=VBScript EnableSessionState=True %>
In alle pagina's. ;)

Nieuwe M3 Macbook of iMac kopen? Check: Apple M3 Prijs Overzicht


  • dominion99
  • Registratie: December 2001
  • Laatst online: 07-06 09:49
Denk je dat dat gaat werken?

Soms werkt het wel goed, maar soms weer niet

maar wat jij zegt kun je ook in
web.config zetten geloof ik

code:
1
2
3
4
5
6
<system.web>
  <pages
    enablesessionstate="true"
  />    

</system.web>


dan werkt het ook voor elke pagina

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:57

gorgi_19

Kruimeltjes zijn weer op :9

Wanneer werkt het wel en wanneer niet? Zit hier een logica in? Waar werkt het niet?

Codebehind? Classfiles? .aspx files? .ascx files? Gooi eens wat vaker met tracing een sessionId er tussen, kan je die beter volgen.

Hoe vraag je een session op, op welke plaats?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • dominion99
  • Registratie: December 2001
  • Laatst online: 07-06 09:49
gorgi_19 schreef op 14 november 2002 @ 14:05:
Wanneer werkt het wel en wanneer niet? Zit hier een logica in? Waar werkt het niet?

Codebehind? Classfiles? .aspx files? .ascx files? Gooi eens wat vaker met tracing een sessionId er tussen, kan je die beter volgen.

Hoe vraag je een session op, op welke plaats?
Nou er zit geen logica in, bovenaan elke pagina staat een functie checksessie
die controleert 2 variabelen van de sessie of er iets is.

Dat gebeurt dus elke keer dat een pagina laad, ook bij postbacks

Meestal gebeurt het als je uitgelogd bent en weer opnieuw inlogd.
Volgens mij loopt een sessie precies 1 uur en je kunt daar niks aan veranderen (behalve zelf de timeout instellen).

Maar ik dacht als ik nou een cookie bijhou me dezelfde variabelen, en als ik bij checksessie een lege variabele vindt dan probeer ik de waarde nog uit de cookie te halen en stop die weer in het sessie object.

Maar als die sessie echt verloopt dan kun je ook zeker niet meer de waarden weer opnieuw invoeren

ik gebruik gewoon Code binnen script tags bovenaan een aspx pagina, geen codebehind.

Edit: Weet iemand hoe je kunt zorgen dat het aangemaakte cookie autmatisch wordt verwijdert nadat je de browser hebt afgesloten
eigelijk zou dat automatisch moeten gebeuren maar ik zie hem nog stees in mijn profiel (winxp) staan. Als ik bij Cookie.Expires = 0 invoer krijg ik een syntax fout, als ik een datum in het verleden invoer dan krijg ik geen cookie op mijn HD

en als ik expires = now.addseconds 5 doe dan is hij na 5 seconden niet meer benaderbaar maar het cookie staat nog wel op de HD

  • dominion99
  • Registratie: December 2001
  • Laatst online: 07-06 09:49
Als ik bij het instellen van de cookie het volgende doe
code:
1
Response.Cookies(Session.SessionId).Expires = DateTime.Now.AddHours(2)

en bij checksessie het volgende
code:
1
2
Response.Write("<BR>Cookie Expires: " & Request.Cookies
(Session.SessionID).Expires)


Dan krijg ik als output
code:
1
Cookie Expires: 0:00:00


Kan iemand uitleggen hoe dat kan, is dit een bug of doe ik iets fout

Edit:

Ik was ff 1 ding vergeten, als ik geen tijd aangeef dan wordt ie verwijdert zodra je de browser sluit. Maar het cookie komt niet op de HD maar blijft in het geheugen

ik wist het wel, maar was dat vergeten 8)7

Acties:
  • 0 Henk 'm!

  • PR3T
  • Registratie: December 2001
  • Laatst online: 23-05 22:07

PR3T

[DPC]Team_RC

Ik heb hetzelfde probleem als dominion. Lokaal werkt een asp.net applicatie met sessies wel, zet je hem echter op een webserver en wilt de asp.net pagina laden. Dan wordt de sessie op een bepaald moment weg gegooit. Ik krijg dan de melding, 'Object reference not set to an instance of an object'. Ik heb het framework opgewaardeerd naar sp2 maar dit hielp niet. Ik gebruik in vrijwel alle pagina's sessies op 1 pagina na, en die werkt dan nog wel. Dus het ligt aan de sessie.

Mijn vraag is of er nog meer mensen te maken hebben gehad met dit probleem. Ik ben er al een week mee bezig om het op te lossen.

Als iemand een oplossing heeft voor dit probleem hoor ik het graag, wordt een beetje moedeloos van al dat aangemodder. ;(

Proud member of [DPC]Team_RC | Join Team RC


Acties:
  • 0 Henk 'm!

Anoniem: 3057

PR3T: wat staat er op de regel waar de fout ontstaat?

Acties:
  • 0 Henk 'm!

  • PR3T
  • Registratie: December 2001
  • Laatst online: 23-05 22:07

PR3T

[DPC]Team_RC

Anoniem: 3057 schreef op 10 april 2003 @ 18:09:
PR3T: wat staat er op de regel waar de fout ontstaat?
De sessie verdwijnt gewoon, dus bij elke willekeurige regel code?? De webserver gooit gewoon zonder enige reden de sessie weg na een willekeurige tijd.

Proud member of [DPC]Team_RC | Join Team RC


Acties:
  • 0 Henk 'm!

  • PR3T
  • Registratie: December 2001
  • Laatst online: 23-05 22:07

PR3T

[DPC]Team_RC

Ik heb waarschijnlijk een oplossing voor het probleem gevonden. Het probleem en oplossingen wordt beschreven op microsoft.com, hieronder de links.

Session Variables Are Lost Intermittently in ASP.NET Applications
Session Variables Are Lost in ASP Web Applications
Session Data Is Lost When You Use ASP.NET InProc Session State Mode

Proud member of [DPC]Team_RC | Join Team RC


Acties:
  • 0 Henk 'm!

  • JamesTiberius
  • Registratie: Oktober 2000
  • Laatst online: 08-03-2006

JamesTiberius

Feel the magic

vreemd, heb hetzelfde probleem, maar mijn virusscanner (McAfee) scanned helemaal niet op *.asa of *.asp files ...

I laugh in the face of danger ... ... then I hide and wait until it goes away -

Pagina: 1