Session ASP.NET C#

fablevr92 Messages postés 1 Date d'inscription mardi 3 juin 2008 Statut Membre Dernière intervention 3 juin 2008 - 3 juin 2008 à 15:18
fablevr Messages postés 1 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 3 juin 2008 - 3 juin 2008 à 17:47
Bonjour,
J'ai développé deux pages view.aspx.cs, Pay.aspx.cs, et une classe MyTimer.cs.
La page view doit créer un timer, et la page Pay.aspx.cs crée une variable session "EndTimer".
MyTimer.cs doit arrêter le timer quand il détecte la variable session EndTimer crée par la page Pay.aspx.cs.

ça ne fonctionne pas.

Voici le code de mes différentes pages:

View.aspx.cs:
public partial class view : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        MyTimer mt = new MyTimer();
        mt.createTimer();

        object MonObjet = null;
        string IDvariable = "EndTimer";
        MonObjet = HttpContext.Current.Session[IDvariable];
        
    }

My Timer.cs :

public class MyTimer
{
   
        private System.Timers.Timer aTimer;
        private static int nbit = 0;

        public MyTimer()
        {
            
        }

        public void createTimer()
        {
            // Create a timer with a ten second interval.
            aTimer = new System.Timers.Timer(500);

            // Hook up the event handler for the Elapsed event.
            aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);

            // Only raise the event the first time Interval elapses.
            aTimer.AutoReset = true;
            aTimer.Enabled = true;
    

        }

        public void deleteTimer()
        {
            aTimer.Stop();
        }
        
        private void OnTimedEvent(object source, ElapsedEventArgs e)
        {
            object _value = null;
            try
            {
                // Récupérer le contexte de la requête
                HttpContext _context = HttpContext.Current;

                // Accéder à l'objet intrinsèque Session
                _value = _context.Session["EndTimer"];
            }
            catch (Exception excep)
            {
            }
            finally
            {
                if (_value == null)
                {
                    Debug.WriteLine("Hello World!" + nbit);
                    nbit = nbit + 1;
                }
                else
                {
                    Debug.WriteLine("FIN TIMER!!!!!!!!!" + nbit);
                    deleteTimer();
                }
            }
           
        }

}

Pay.aspx.cs

public partial class Pay : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        
        string IDvariable = "EndTimer";
        HttpContext.Current.Session.Add(IDvariable, "");
      
    }
}

2 réponses

yassinebennani Messages postés 249 Date d'inscription samedi 13 octobre 2007 Statut Membre Dernière intervention 2 mai 2014
3 juin 2008 à 15:47
Bonjour

j'ai pas bien compris ton objectif de tout ça,  mais je pense que t'as une erreur à ce niveau  

  // Accéder à l'objet intrinsèque Session
   _value = _context.Session["EndTimer"];

le EndTimer c'est le contenu qui est stocké dans la session et non pas la clé car Pay crée une variable session avec la clé IDvariable

        string IDvariable(clé) = "EndTimer"(valeur);
        HttpContext.Current.Session.Add(IDvariable, "");

et donc  tu doit chercher la variable par sa clé et non pas par sa valeur

        // Accéder à l'objet intrinsèque Session
       _value = _context.Session["IDvariable"];
 

Les fins justifient les moyens_________________________________________________
Yassine BENNANI - Ingénieur en génie logiciel & multimédia (Consultant SI)
0
fablevr Messages postés 1 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 3 juin 2008
3 juin 2008 à 17:47
Le problème ne vient pas de la puisque IDVariable est une variable et non pas une chaine le contenu , cette variable reçoit "EndTimer".
string IDvariable(Nom Variable) = "EndTimer"(valeur);

Merci quand même, c'est très sympa
0
Rejoignez-nous