2010-11-04 3 views
0

J'ai un contrôle asp.net qui contient une vue de grille placée au-dessus d'un panneau de mise à jour Ajax. Le contrôle a été ajouté à une page de point de partage. Lorsqu'un bouton est cliqué, un code de serveur est appelé pour stocker le contenu de la grille. Si le code du serveur génère une erreur, je veux cracher une alerte javascript affichant le message d'erreur, mais pour une raison quelconque, l'erreur qui surgit du serveur est l'erreur 500 générique du serveur, qui ne contient aucun les détails de l'erreur initiale.Impossible d'intercepter ASP.Net Erreur de serveur dans le point de partage

Quelqu'un peut-il expliquer pourquoi c'est?

Un grand merci Gerry

Répondre

0

Le comportement par défaut d'ASP.NET (et SharePoint) est d'afficher une page d'erreur générique lorsqu'une exception est levée. Pour des raisons de sécurité, cette page masque tous les détails de l'erreur. Avec les paramètres de débogage dans web.config vous pouvez obtenir une trace de pile, mais cela ne vous donnera pas quelque chose facilement manipulé en javascript. Pour retourner une page d'erreur personnalisée, vous pouvez configurer un gestionnaire d'exception global non géré (probablement trop pour cela) ou vous pouvez intercepter l'exception et modifier la réponse de manière appropriée. Pour une méthode de repos, vous devez effacer la réponse, définir l'état sur 500 et écrire le message d'erreur dans la réponse. Pour un UpdatePanel, vous affichez le panneau comme un message d'erreur ou avec un script pour afficher l'alerte. Vous ne savez pas si vous souhaitez définir le statut dans ce cas - UpdatePanel est un hack vilain pour simuler le véritable ajax dans les formulaires Web, donc vous ne pouvez pas vous attendre à ce que le code soit particulièrement propre.

Questions connexes