2011-04-09 8 views
6

En Webform1.aspx.cs:Application_Error ne se déclenche pas?

protected void Page_Load(object sender, EventArgs e) 
{ 
    throw new Exception("test exception"); 
} 

Dans les Global.asax.cs:

protected void Application_Error(object sender, EventArgs e) 
{ 
    // Code that runs when an unhandled error occurs 
    if (Server.GetLastError() is HttpUnhandledException) 
     Server.Transfer("ErrUnknown.aspx"); 
} 

Mais le gestionnaire d'événements Application_Error ne fait jamais appelé. Au lieu de cela, j'ai une page d'erreur d'exécution.

Que dois-je faire pour que Application_Error soit appelée après qu'une exception soit levée?

+0

Que dit votre web.config pour la section des erreurs personnalisées? – Rich

+0

Rien. Faites-vous référence à la section customErrors? – ChrisPeeters

+0

Oui, vérifiez également que la compilation Debug = True est [set] (http://msdn.microsoft.com/en-us/library/e8z01xdh%28v=vs.80%29.aspx) – Rich

Répondre

5

Cela semble correct et l'erreur Application_Error doit être appelée.

Avez-vous vérifié par Debugging votre demande?

En fait il vous manque Server.ClearError() donc l'exception est passée à asp.net mais vous devriez la supprimer ici parce que vous la manipulez vous-même.

protected void Application_Error(object sender, EventArgs e) 
{ 
    // Code that runs when an unhandled error occurs 
    if (Server.GetLastError() is HttpUnhandledException) 
    { 
     // suppressing the error so it should not pass to asp.net 
     Server.ClearError(); 
     Server.Transfer("ErrUnknown.aspx"); 
    } 
} 
+0

Bonjour. le débogueur interrompt le Page_Load à l'instruction qui lève l'exception et ne continue pas à Application_Error. des suggestions? – ChrisPeeters

1

J'ai trouvé le problème.

Server.Transfer("ErrUnknown.aspx") 

était la cause.

En essayant d'afficher 'ErrUnknown.aspx' directement dans le navigateur, j'ai réalisé que j'avais une erreur sur cette page. Après l'avoir corrigé Server.Transfer fonctionne

Est-ce que cela est trompeur mais est que l'événement ne se déclenche pas pendant le débogage de l'application?

Quoi qu'il en soit.

+0

Je ne suis pas sûr que ce soit une solution pour tout le monde –

Questions connexes