Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème au niveau de ma Session_end dans mon Global.asax [ Archives ASP & ASP.NET / ASP.net ] (Manu94600)

mardi 28 mars 2006 à 14:37:19 | Problème au niveau de ma Session_end dans mon Global.asax

Manu94600

Salut à tous,

Je cherche quelqu'un qui puisse m'indiquer mon erreur.
Alors j'ai une application asp.net en C#.

Je cherche à compter combien d'utilisateur sont sur le site actuellement. Donc pour cela j'utilise le Global.asax

voici mon code :

   protected void Application_Start(Object sender, EventArgs e)
  {
         Application["nbUser"] = 0;
  }
 
  protected void Session_Start(Object sender, EventArgs e)
  {
         Application.Lock();
         Application["nbUser"] = Convert.ToInt32(Application["nbUser"]) + 1;
         Application.UnLock();
  }

   protected void Session_End(Object sender, EventArgs e)
  {
         Application.Lock();
         Application["nbUser"] = Convert.ToInt32(Application["nbUser"]) - 1;
         Application.UnLock();
  }

Coté WinForm, j'ai dans la methode Load :

Response.Write(Application["nbUser"]);

Donc quand j'exécute l'application, j'ai une première page qui affiche 1.
J'ouvre donc une autre page et il m'affiche 2 (normal car c'est une deuxième session).

Mais mon problème c'est que dans la première page, il faut que je rafraichisse la page pour qu'il affiche 2.
Donc je voudrais savoir si quelqu'un aurai une solution ou tout simplement me donner des petits tips :) pour me permettre d'effectuer des recherches.

Et j'ai un autre problème, c'est que lorsque je ferme une fenetre dans l'autre fenetre le chiffre reste à 2. Et ceci meme en réactualisant la fenetre.

Merci pour m'aider.

Manu

mardi 28 mars 2006 à 15:14:52 | Re : Problème au niveau de ma Session_end dans mon Global.asax

tikrimi

Membre Club
Bonjour,

Pour ton premier problème, tu as trouvé tout seul la solution : oui il faut rafraichir ta page.
Le seul moyen de rafraichir une page, c'est du javascript... tu peux éventuelement te servir d'Ajax pour ne rafraichir que la partie de tapage qui comporte l'affichage du nombre de connectés.
Pour ton deuxième problème, il n'y a en fait pas de problème : quand tu ferme ton navigateur, tu n'envoie aucune information au serveur comme quoi tu quitte la session (tu ne fais que fermer ton navigateur). Ta méthode Session_End ne sera appelée que si l'utilisateur ne donne pas signe de vie avant le timeout de ta session (qu'il ferme ou non son navigateur) (là encore le sujet et vaste car il existe plusieurs méthodes pour gérer les sessions en ASP.NET).
Si tu veux que ta session se ferme quand tu fermes ta pages... à toi d'intercepter l'évenement de fermeture de ta page puis de faire le traitement necessaire.

TiK - MCAD.NET
[ Lien ]
[ Lien ]

mardi 28 mars 2006 à 15:25:03 | Re : Problème au niveau de ma Session_end dans mon Global.asax

Manu94600

Tout d'abord merci de m'aider.

Pourrais tu me donner des pistes concernant ajax, je connais pas du tout comment ça marche et surtout par rapport à mon problème.

Pour mon deuxieme probleme, j'avais pensé faire un : Session.Abandon(); dans l'évènement Page_UnLoad()
Mais le problème c'est que quand on fait une actualisation de la page, le Page_Unload() est appelé, je crois. Donc je sais pas du tout comment faire.

Merci pour ton aide.

Manu

mardi 28 mars 2006 à 21:15:23 | Re : Problème au niveau de ma Session_end dans mon Global.asax

tikrimi

Membre Club

Bonjour,

Je crois que je ne vais pas pouvoir t'aider beaucoup plus.
Pour ce qui est de l'Ajax, je ne suis pas un grand spécialiste, mais quand j'ai besoin "d'un peu" d'Ajax, j'utilise la librairie suivante : [ Lien ] (dans les sources de ce site tu trouveras aussi des exemple). Il y a par contre dans ce forum des grands spécialistes d'Ajax (je ne dénomcerai personne ;-) ).
Pour la fermeture de ton navigateur, c'est du coté du JavaScript qu'il faut aller voir (événément de fermeture de ton navigateur). Mais cela ne va solutionner qu'une partie de ton problème... quand un utilisateur va quitter ton site en entrant une nouvelle url, sa session va continuer d'exister jusqu'àu timeout.
Autre chose, si tu arrives a décrémenter ton compteur sur la fermeture du navigateur.... à l'expriration rééle de la session la methode Session_End sera appelée... tu va te retrouver avec un nombre négatif d'utilisateurs (il va faloir que tu gères un ID de seesion).

Enfin bref... a moins que tu sois dans l'absolue necessité de connaitre exactement le nombre d'utilisateurs sur ton site à l'instant t, je te conseille de gérer tes sessios en "standard"

TiK - MCAD.NET
[ Lien ]
[ Lien ]


mardi 28 mars 2006 à 23:45:43 | Re : Problème au niveau de ma Session_end dans mon Global.asax

Manu94600

Forcement j'ai besoin de connaitre le nombre d'utilisateurs qui sont connectés. Car en fait je suis débutant en asp.net et je voudrais essayer, j'ai bien dit essayer :), de faire un chat en aspx :).

Je sais qu'il en existe des tas mes voilà j'aime m'entrainer à faire des choses que je connais pas :). (C'est comme ça qu'on apprend :))
Et donc pour cela il faut que je sache qui est connecté ou pas. Et donc du coup il faut que je détermine quand l'utilisateur ferme ça session ou quand il quitte tout simplement la page par fermeture ou encore même quand il part sur un autre site.

Merci quand même.

Je vais me diriger vers le JavaScript mais j'y connais pas plus :).

Manu



Cette discussion est classé dans : problème, page, application, session, nbuser


Répondre à ce message

Sujets en rapport avec ce message

Problème avec l'objet Session [ par Tibo ] J'ai un problème avec un objet session qui se perd entre deux pages : j'appelle une page, l'objet session contient des valeurs, avec un script en Java Problème de variable session [ par oeilynx ] Après avoir créé une variable session et exécuté la fonction session.abandon, en tapant l'url d'une page qui utilise cette variable session, cette var Probleme pour l'affichage de la page precedente [ par DrikC95220 ] Bonjour à tous,J'aurrai besoin d'aide car cela fait près d'une semaine que j'essais de régler mon problème.Mon application est en ASP.NET, mon code d< Problème Session [ par Fildomen ] Salutje veux qu'une page ne soit ouverte qu'une seule fois par le même pc !!! ca marche si j'ouvre le naviguateur et je tape l'adresse de ma page !! e Problème de session [ par WishhhMaster ] Salut,J'ai un problème concernant l'utilisation de l'objet Session. Je m'explique:en arrivant sur une page d'administration, l'utilisateur est invité Session et Popup [ par schumileboss ] Salut,Alors je souhaitais vous demander un petit peu d'aide car je suis bloqué.Je travail en ASP.net 2.0, sur une application web.J'ai une page sharep DEBUTANT, problème avec ma variable de session [ par Nixeus ] Bonjour les amis !Je suis débutant en ASP, et ia un petit travail a finir pour mon projet BTS ( ne vous inquietez pas, je ne vais pas vous demander de Problème d'application d'une culture pour la MasterPage [ par ptitkosmos ] Bonjour,je suis entrain de développer un website en asp.net (vb) qui doit pouvoir gérer plusieurs langues (définie par l'utilisateur connecté). J'ai r Problème CascadingDropDown [ par Lo0ping ] Bonjour, je construis mon 1er suite Ajax et je rencontre mes 1ers soucis Voila, je construis une page ASP.Net avec un Extender CascadingDropD Problèmes avec des IFRAMES [ par ttornade ] Bonsoir à tousj'ai le problème suivant. J'ai une page Mère contenant un IFRAME(FILS) comme:   Pere.aspx   .. <br


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.