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 :

[2.0] Application_Error n'intercepte rien :'(


Sujet :

ASP.NET

  1. #1
    CUCARACHA
    Invité(e)
    Par défaut [2.0] Application_Error n'intercepte rien :'(
    Salut,

    Je suis en train de mettre un projet au propre. Pour se faire, je veux créer une interception d'erreur au niveau application afin que cette dernière joue le rôle d'ultime rempart contre les erreurs oubliées.

    j'ai ajouté au global.asax le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            protected void Application_Error(object sender, EventArgs e)
            {
                if (!System.Diagnostics.EventLog.SourceExists
                        ("ASPNETApplication"))
                {
                    System.Diagnostics.EventLog.CreateEventSource
                       ("ASPNETApplication", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
                }
                System.Diagnostics.EventLog.WriteEntry
                    ("ASPNETApplication", Error_LogIt());
                    Error_DisplayIt();
                Server.ClearError();
            }
    et pour tester, dans ma page de test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            protected void Page_Load(object sender, EventArgs e)
            {
                int a = 1;
                int b = 0;
                int c = 0;
                c = a / b;
            }
    L'erreur se produit bien mais n'est pas interceptée.

    Quelqu'un pourrait m'aider pour comprendre ce qui peut bien se passer ?

    D'avance merci

    Laurent
    Dernière modification par CUCARACHA ; 05/06/2008 à 17h43.

  2. #2
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Tu veux dire quoi par "n'est pas interceptée" ?

    Tu as essayé un point d'arrêt dans le global.asax ?

  3. #3
    CUCARACHA
    Invité(e)
    Par défaut plusieurs pistes
    Salut,

    Merci pour ta réponse. Il semble qu'il manquait la balise custom error dans mon web.config.

    Tout content d'avoir trouvé j'ai essayé d'aller plus loin mais j'ai à nouveau pris un mur.

    J'ai créé :

    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
     
        public class ApplicationErrorEventArgs : EventArgs
        {
            private readonly bool _logIt;
            private readonly bool _displaIt;
            private readonly Exception _oE;
     
            public bool LogIt
            {
                get { return _logIt; }
            }
            public bool DisplaIt
            {
                get { return _displaIt; }
            }
            public Exception oE
            {
                get { return _oE; }
            }
     
            public ApplicationErrorEventArgs(bool booLogIt, bool booDisplayIt, Exception oE)
            {
                this._logIt = booLogIt;
                this._displaIt = booDisplayIt;
                this._oE = oE;
            }
        }
    L'objectif est de pouvoir travailler sur mon erreur où je veux dans ma hiérarchie de classe et loguer ou non les erreurs interceptées, et ou choisir de les afficher dans une page ad'hoc si nécessaure.

    Malheureusement,

    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
     
            protected void Application_Error(object sender, ApplicationErrorEventArgs e)
            {
                if (e.GetType() != null) {
                    string it = e.GetType().Name;
                } 
                if (!System.Diagnostics.EventLog.SourceExists
                        ("ASPNETApplication"))
                {
                    System.Diagnostics.EventLog.CreateEventSource
                       ("ASPNETApplication", "XXXXXXXXXXXXXXXXXXXXXXXXXX");
                }
                System.Diagnostics.EventLog.WriteEntry
                    ("ASPNETApplication", Error_LogIt(Server.GetLastError()));
                    Error_DisplayIt();
                Server.ClearError();
            }
    n'itercepte plus du tout les erreurs...

    Arf... Ca doit être soit mes lacunes en c# soit des lacunes du c# en objet...

    D'après toi ?

    ++

    Laurent
    Dernière modification par CUCARACHA ; 05/06/2008 à 17h43.

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/07/2013, 20h07
  2. Interception des commandes in et out
    Par KDD dans le forum x86 16-bits
    Réponses: 13
    Dernier message: 18/12/2002, 16h55
  3. [debutante] [JDBComboBox]rien à l'affichage
    Par Lina dans le forum JBuilder
    Réponses: 3
    Dernier message: 22/11/2002, 13h31
  4. [VB6] Intercepter le printscreen
    Par Rami dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/10/2002, 18h21
  5. [VB6] Interception des évènement Copier/Couper/Coller
    Par youtch dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/10/2002, 17h09

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