IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#][2.0] Comment utiliser le Global.asax ?


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Points : 92
    Points
    92
    Par défaut [C#][2.0] Comment utiliser le Global.asax ?
    Bonjour,

    J'utilise Visual Studio 2005 et j'aimerais utiliser les fonctionnalités du global.asax.
    Pour l'instant, je voudrais juste positionner une variable d'application au lancement de l'application et l'afficher dans ma page de lancement, histoire de comprendre le fonctionnement.

    Autre chose : par défaut, lors de la création de mon application Web, le global.asax n'était pas associé à un .cs. Je l'ai donc créé "à la main" en ajoutant le CodeBehind="Global.asax.cs".

    Voici à quoi ressemble mon fichier global.asax.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    using System;
    public class Global : System.Web.HttpApplication {
        protected void Application_Start(Object sender, EventArgs e) {
            Application["test"] = "test";
        }
     
    }
    Seulement, quand j'essaie d'afficher Application["test"] dans un label, je n'ai rien.

    Pourriez vous m'expliquer ?

    Merci d'avance
    Stéphanie
    Pensez à mettre quand vous avez obtenu la réponse à votre question.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 94
    Points : 67
    Points
    67
    Par défaut
    il te manque des elements; vérifie avec ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Web;
    using System.Web.SessionState;
     
    namespace testAppli 
    {
    	/// <summary>
    	/// Summary description for Global.
    	/// </summary>
    	public class Global : System.Web.HttpApplication
    	{
    		/// <summary>
    		/// Required designer variable.
    		/// </summary>
    		private System.ComponentModel.IContainer components = null;
     
    		public Global()
    		{
    			InitializeComponent();
    		}	
     
    		protected void Application_Start(Object sender, EventArgs e)
    		{
     
    		}
     
    		protected void Session_Start(Object sender, EventArgs e)
    		{
     
    		}
     
    		protected void Application_BeginRequest(Object sender, EventArgs e)
    		{
     
    		}
     
    		protected void Application_EndRequest(Object sender, EventArgs e)
    		{
     
    		}
     
    		protected void Application_AuthenticateRequest(Object sender, EventArgs e)
    		{
     
    		}
     
    		protected void Application_Error(Object sender, EventArgs e)
    		{
     
    		}
     
    		protected void Session_End(Object sender, EventArgs e)
    		{
     
    		}
     
    		protected void Application_End(Object sender, EventArgs e)
    		{
     
    		}
     
    		#region Web Form Designer generated code
    		/// <summary>
    		/// Required method for Designer support - do not modify
    		/// the contents of this method with the code editor.
    		/// </summary>
    		private void InitializeComponent()
    		{    
    			this.components = new System.ComponentModel.Container();
    		}
    		#endregion
    	}
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par linux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	/// <summary>
    	/// Required designer variable.
    	/// </summary>
    	private System.ComponentModel.IContainer components = null;
    Citation Envoyé par linux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	#region Web Form Designer generated code
    	/// <summary>
    	/// Required method for Designer support - do not modify
    	/// the contents of this method with the code editor.
    	/// </summary>
    	private void InitializeComponent()
    	{    
    		this.components = new System.ComponentModel.Container();
    	}
    	#endregion
    Cela ne fonctionne pas mais les deux éléments ci-dessus me perturbent dans ta réponse car ils n'apparaissent généralement dans les CodeBehind qu'en version 1.0 hors, je suis en version 2.0.

    Par ailleurs, je redémarre le service IIS pour être sûre de déclencher le Application_Start, est ce correct ?
    Pensez à mettre quand vous avez obtenu la réponse à votre question.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 94
    Points : 67
    Points
    67
    Par défaut
    ouh la autant pour moi je n'avais pas lu le .net 2.0 ....
    si je me souviens que dans la béta 2005 si tu ne modifie pas un option le code se trouve dans la page aspx.
    navigue parmi les options de vs 2005 et tu pourra remettre le code visible en code-behind
    peut être tu y verras plus clairement

  5. #5
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut Re: [C#][2.0] Global.asax ...
    le global.asax n'était pas associé à un .cs. Je l'ai donc créé "à la main" en ajoutant le CodeBehind="Global.asax.cs".
    Salut, pourquoi voudrais tu absolument créer un fichier .cs ? Ca m'a pertubé aussi au début mais en fait, si ça a été conçu comme ça, c'est qu'il doit y avoir une bonne raison. De plus, si ma mémoire est bonne, en V1.0, global.asax seul (sans codebehind) ne servait pas à gd chose de toute façon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        protected void Application_Start(Object sender, EventArgs e) {
            Application["test"] = "test";
        }
    Seulement, quand j'essaie d'afficher Application["test"] dans un label, je n'ai rien.
    Moi, ça marche (dans textbox).
    Par ailleurs, je redémarre le service IIS pour être sûre de déclencher le Application_Start, est ce correct ?
    Application_Start se déclenche au démarrage de ton appli et non au redémarrage de IIS, qui lui recycle aspnet_wp (aspnet worker process). Mets un point d'arrêt et tu verras.
    Nous tenir au courant lorsqu'on fait l'effort de vous répondre...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Points : 92
    Points
    92
    Par défaut Re: [C#][2.0] Global.asax ...
    Citation Envoyé par quanou
    Application_Start se déclenche au démarrage de ton appli et non au redémarrage de IIS, qui lui recycle aspnet_wp (aspnet worker process). Mets un point d'arrêt et tu verras.
    Ok mais je ne comprends pas ce qu'est une "application" Web et quand est ce qu'elle "redémarre". Que faut il faire pour qu'elle "redémarre" ?

    Sinon, j'ai supprimé la page global.asax.cs.
    Le code de ma page global.asax est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <%@ Application Inherits="EASY.Global" Language="C#" %>
    <script RunAt="server">
        protected void Application_Start(Object sender, EventArgs e)
        {
            Application["test"] = "test";
        }
    </script>
    et cela ne fonctionne toujours pas !! J'ai lancé mon application en debug et je n'y passe pas.
    Pensez à mettre quand vous avez obtenu la réponse à votre question.

  7. #7
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut Re: [C#][2.0] Global.asax ...
    Ok mais je ne comprends pas ce qu'est une "application" Web et quand est ce qu'elle "redémarre". Que faut il faire pour qu'elle "redémarre" ?
    Ben, quand tu lance ton application en debug par exemple.

    J'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Application Language="C#" %>
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Application Inherits="EASY.Global" Language="C#" %>
    J'ai lancé mon application en debug et je n'y passe pas.
    En dernier recours, reprends un fichier Global.asax original, celui avant tous tes copier/coller.

    C'est obligé que ça passe par Application_Start
    Nous tenir au courant lorsqu'on fait l'effort de vous répondre...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Points : 92
    Points
    92
    Par défaut
    Eh bien voilà ... la différence doit être de taille car sans la balise Inherits, cela fonctionne parfaitement.

    Merci beaucoup.
    Stéphanie
    Pensez à mettre quand vous avez obtenu la réponse à votre question.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation du Global.asax
    Par zooffy dans le forum ASP.NET
    Réponses: 23
    Dernier message: 20/10/2009, 17h34
  2. Réponses: 3
    Dernier message: 18/01/2008, 20h45
  3. utiliser Global.asax en vs2005
    Par simodox dans le forum ASP.NET
    Réponses: 6
    Dernier message: 11/04/2007, 15h25
  4. Réponses: 3
    Dernier message: 20/12/2006, 17h13
  5. [sql] comment utiliser une variable global
    Par imedg dans le forum Oracle
    Réponses: 21
    Dernier message: 02/05/2006, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo