Online users med global.asax?

Tags:    asp.net

Hej udviklere,

Jeg er, som nogen af jeg måske allerede har set, for nyligt gået i gang med asp.net, efter et års tid med C# windows forms, og syntes egentligt det går meget godt ind til videre ;)

Nu kom jeg så på den idé at jeg ville have mulighed for at se hvor mange brugere der er online på min side, og så tænkte jeg at det nok var noget med global.asax ligesom det var global.asa i asp classic.

Nu har jeg så siddet den sidste times tid og kigger rundt på nettet for at finde noget om hvordan en global.asax fil skal opbygges og hvad for noget kode der skal bruges.

Det skal lige nævnes her at jeg bruger dreamweaver, og har derfor ikke bare et template ligesom i visual web developer.

Den kode jeg kom frem til i global.asax er som følger:
Fold kodeboks ind/udKode 


Hvorefter jeg i min default.aspx ville kalde antallet af brugere med følgende kode:

Fold kodeboks ind/udKode 


Men dette giver mig konstant "error online users" - altså som om Application["onlineUsers"] over hovedet ikke eksisterer..

Så var det jeg tænkte om man måske skal deklerere global.asax et eller andet sted før man bare kan bruge den? Ville jo ellers mene at den var skulle ligge i roden, og så var dét det.

På forhånd tak



8 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Søgte lidt og fandt: http://forums.asp.net/p/1509963/3594591.aspx

Prøv om den virker...



Global.asax skal bare ligge i root biblioteket af din Asp.net løsning, hvorved den gerne selv skulle finde ud af det er application filen som skal bruges.


Angående den statiske måde at gemme brugerne på tænker jeg på at lave en statisk klasse til at opbevare dine informationer.

Fold kodeboks ind/udKode 


Når du så skal rette fra din session start og session stop så laver du bare en OnlineUsers.OnlineUsers += 1
eller
OnlineUsers.OnlineUsers -= 1
Alt afhængig af om du skal fjerne en eller tilføje en. En statisk variable er en variable der ligger i rammen på serveren hvorved den er delt over alle sessioner.

Giver det mening?



Kan det mon hænge sammen med den tastefejl du har i Session_Start?

:)



Har lige rettet det - virker stadig ikke..



Det er jo egentligt også det jeg gør - bortset fra jeg har det i C# i stedet.. Session timeout er som default 10 minutter, så burde ikke have noget at sige heller.. Og jeg converterer også til int inden jeg lægger noget til..

Har prøvet med Convert.ToInt32() i stedet for (int), men giver heller ingen forskel..



Hej,

Nu er det ikke noget jeg har erfaringer med, men ville det ikke være bedre at lave en statisk variable i en Online user klasse, som holder styr på hvor mange der er online?

Jeg kender ikke lige til funktionen med at bruge Application, samt din Lock og Unlock funktion?

Hvis du bruger en statisk klasse, vil den jo være ens for hele fin applikation?



Kan du give et konkret eksempel på det?

Det jeg er ved at være mere og mere i tvivl om er, om jeg har misset et eller andet? skal man et eller andet sted angive at man bruger global.asax, f.eks. i web.config eller sådan noget?
Eller kommer det helt af sig selv når filen eksisterer?



Nu bliver jeg først rigtigt forvirret.. Har lige prøvet i visual web developer 2008 at sætte en side op med en Global.asax fil, som virkede fint, men da jeg kopierede kildekoden over i min egen Global fil, default.aspx i min egen default og default.aspx.cs i min egen cs fil, virkede det ikke..

Som jeg skrev før, er jeg gået glip af noget?

Hvor skal man angive at global.aspx bruges til applikationen? Er det i web.config, eller?



t