Avatar billede maxikoll Nybegynder
14. marts 2006 - 10:50 Der er 14 kommentarer

Session går tabt (.NET 2.0)?

Jeg sidder med en ret stor .NET 2.0 applikation, som er lavet i C#. Der benyttes Forms Authentication for at styre logon og her er følgende sat:

<authentication mode="Forms">
  <forms timeout="30" slidingExpiration="true" name="form1" loginUrl="Login.aspx" path="/" />
  <deny users="?"/>
</authentication>
<sessionState timeout="30" />


Problemet er som følger:
Når man logger ind, er alt fint nok! Man kan navigere rundt og hygge sig. Man kan vente 15 min og så navigere lidt videre og alt er stadigt super. Men nogle gange sker det, at man ved et server side kald bliver smidt af. Det kan ske ved lidt idling eller måske hvis man er uheldig ved næste klik lige efter. Og det er som om at session resettes totalt? Jeg prøver nemlig at fange på om det jeg sætter i Session forsvinder og hvis skal den skrive det, men det er ikke det der sker.

Følgende logges på web serveren, som er en Windows 2003 Web Edition (har erstattet IP med x'er):

Event code: 4005
Event message: Forms authentication failed for the request. Reason: The ticket supplied has expired.
Event time: 14-03-2006 10:44:22
Event time (UTC): 14-03-2006 09:44:22
Event ID: aff4b8981e4b4bfca40cf8a6a83aba3a
Event sequence: 659
Event occurrence: 56
Event detail code: 50202

Application information:
    Application domain: /LM/W3SVC/1/Root/MitSite-1-127867895183295000
    Trust level: Full
    Application Virtual Path: /MitSite
    Application Path: D:\inetpub\wwwroot\MitSite\
    Machine name: WEB01

Process information:
    Process ID: 6352
    Process name: w3wp.exe
    Account name: NT AUTHORITY\NETWORK SERVICE

Request information:
    Request URL: https://xxx.xxx.xxx.xxx/MitSite/Login.aspx?reason=timeout
    Request path: /MitSite/Login.aspx
    User host address: xxx.xxx.xxx.xxx
    User: 
    Is authenticated: False
    Authentication Type: 
    Thread account name: NT AUTHORITY\NETWORK SERVICE

Name to authenticate: 

Custom event details:

For more information, see Help and Support Center at
http://go.microsoft.com/fwlink/events.asp.


Det sker ret tit i loggen, men der er også en del brugere på systemet og det er trælst at være bruger når man bliver smidt af :-( Derfor håber jeg virkelig på at nogen kan hjælpe, da det ikke må ske.

Jeg ved man også kan sætte noget op i IIS 6, men det skete også ved en session timeout på 20.
Avatar billede casualty Nybegynder
14. marts 2006 - 12:29 #1
Dette er bare et skud. Under services på serveren start "ASP.NET State Service" hvis den ikke er startet...

Mvh Casualty
Avatar billede maxikoll Nybegynder
14. marts 2006 - 12:37 #2
Applikationen er sat til at køre inproc, så den burde ikke benytte sig af den service ellers tror jeg heller ikke det ville virke. Men tak for skudet, alt kan bruges :-)
Avatar billede dr_chaos Nybegynder
14. marts 2006 - 17:13 #3
prøv lige at fjerne
<sessionState timeout="30" />
og se om den gør det samme.
Avatar billede dr_chaos Nybegynder
14. marts 2006 - 17:15 #4
Eller prøv med
<sessionState mode="InProc" timeout="30" />
Avatar billede maxikoll Nybegynder
16. marts 2006 - 09:21 #5
Det er ikke session der timer ud, det er ticket der gør det. Vi har prøvet at lave noget, der fornyer ticket hvis den er expired og session ikke er, men den gør det stadigt.

Vi fulgte dette eksempel:
http://groups.google.dk/group/microsoft.public.dotnet.framework.aspnet/browse_thread/thread/3864f20871dfd65c/497fc58edde462b2?lnk=st&q=The+ticket+supplied+has+expired&rnum=6&hl=da
Avatar billede dr_chaos Nybegynder
16. marts 2006 - 09:59 #6
der skal sættes en mode på sessionstate.
Hjalp det ikke noget ?
Avatar billede maxikoll Nybegynder
16. marts 2006 - 10:02 #7
Tester det i øjeblikket, men man kan også få fejlen uden at være logget ind (mener jeg).
Avatar billede dr_chaos Nybegynder
16. marts 2006 - 10:07 #8
du kan også prøve med

<authentication mode="Forms">
  <forms timeout="30" slidingExpiration="true" name="form1" loginUrl="Login.aspx" path="/" cookieless="UseCookies" protection="All" />
  <deny users="?"/>
</authentication>
Avatar billede maxikoll Nybegynder
16. marts 2006 - 10:57 #9
Hvis jeg kører med slidingExpiration="true" og har sat en timeout på f.eks. 30 min, og så en timeout på 30 min på session også. Så kan jeg ikke forstå, hvordan at ticket kan nå at expire? slidingExpiration gør nemlig at ticket fornys efter halvdeling af timeout tiden.

Lige nu prøver jeg med 60 min timeout på forms og 30 på session med slidingExpiration="true".
Avatar billede dr_chaos Nybegynder
16. marts 2006 - 13:42 #10
ok sessionen fornyes kun når brugeren er aktiv.
Avatar billede maxikoll Nybegynder
16. marts 2006 - 14:00 #11
yeps, lige nu ser det ikke ud til at nogen får den fejl mere, ved at timeout på forms er højere.
Avatar billede dr_chaos Nybegynder
17. marts 2006 - 06:01 #12
ok nice :)
Avatar billede maxikoll Nybegynder
17. marts 2006 - 16:11 #13
Der kom alligevel et par hændelser, men det er meget mindre end før - suk altså! :-)
Avatar billede dr_chaos Nybegynder
17. marts 2006 - 17:23 #14
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester