J'ai une méthode d'une classe (DPCAL_EVENTMOVE) que je souhaite limiter l'accès à l'utilisation de rôles. J'ai à la fois un gestionnaire d'erreur global.asax.cs et un gestionnaire d'erreur IHTTPMODULE personnalisé destiné à attraper des exceptions et serveur non géré. Lestransfer-les à GlobalExceptionHandler.aspx, qui vérifie si les erreurs sont des exceptions SecurityExceptions provenant de contrôles de principautionnement ayant échoué. Pour une raison quelconque, l'exception non gérée causée par la méthode de la décoration de la PremicipPermission n'est pas acheminée par l'un de mes gestionnaires d'erreur. Ma question est la suivante: Où est-ce que cette exception est acheminée et comment puis-je attraper et le gérer? ci-dessous est mon fichier global.aSax.cs: p> Ci-dessous est mon gestionnaire IHTPMOdule personnalisé: P> page_load sur globalexceptionHandler.aspx n'est jamais atteint. p> p>
3 Réponses :
Avez-vous essayé:
public class Global : System.Web.HttpApplication
{
protected void Application_Error(object sender, EventArgs e)
{
Server.Transfer("~/GlobalExceptionHandler.aspx?ReturnUrl=" + Request.Path);
}
}
Je ne sais pas comment cela pourrait aider. Application_Error n'a jamais été appelé (confirmé en mettant un point d'arrêt au début de la méthode).
J'ai vérifié le code ci-dessus sur un projet simple (juste pour ma propre gratification), et bien, ClearErrors () n'est pas nécessaire si vous effectuez un transfert. Est-il possible que vous stands de comportement standard primordial avec un nœud CustomError dans votre web.config?
Si Application_Error n'est pas appelé, que se passe-t-il? Je suppose que l'exception est-elle juste d'être enterrée?
L'exception apparaît en réalité comme une boîte de dialogue contextuelle, au lieu de l'écran jaune habituel de la mort. Mon dernier hunch est que cela est peut-être en quelque sorte lié à l'appel à DPCAL_EVENTMOVE étant un rappel de page, même si je ne suis pas sûr de savoir pourquoi cela importerait.
Il s'est avéré que le problème a été causé parce que la méthode DPCal_EventMove était en cours d'exécution d'un rappel de page. Heureusement, la composante du calendrier DayPilot a une option pour modifier ce comportement. Une fois que j'ai changé la propriété EventMoveHolling de la DayPilot: DaypilotCalendar Control pour "Post-foret" au lieu de "rappel", j'ai pu attraper et gérer l'exception de sécurité. P>
Ajouter: au code de votre page et voyez si cela s'appelle lors d'une erreur? p> p>
Je pense que ce lien peut avoir de bonnes informations pour vous: Stackoverflow .Com / Questions / 2192093 / ...
Si vous avez une erreur lors d'un rappel de page via Webmethod, vous allez avoir à gérer l'erreur de manière appropriée du côté du client. Pourriez-vous éventuellement poster une version (simplifiée) de votre code lorsque (1) appelant
dpcal_eventmove code> et (2) la définition dedpcal_eventmove code>?