- // J'ai une liste des UsersControls à charger qui se trouve dans une variable de sessions : Session["Ucs"]
- // On va utiliser cette liste pour rechercher quel est l'UC qui cause l'erreur
- // Le contenu de la méthode ProcessRequest(HttpContext context) :
-
- public override void ProcessRequest(HttpContext context)
- {
-
- // dans le ProcessRequest, on attrappe toutes les exceptions
- try
- {
- base.ProcessRequest(context);
- }
- catch (Exception ex)
- {
- // on recheches dans la StackTrace de l'exception quel est l'usercontrol qui apparait
- string UcToRemove = "";
- foreach (string item in (System.Collections.Generic.List<string>)Session["Ucs"])
- {
- if (ex.InnerException.StackTrace.Contains(item.Replace(".ascx","")))
- {
- // si on a trouvé l'UserControl qui cause l'erreur, on note son nom
- UcToRemove = item;
- }
- }
- if (UcToRemove != "")
- {
- // ensuite on l'enlève de la liste des UC à charger
- // donc, plus aucun bug :D
- ((System.Collections.Generic.List<string>)Session["Ucs"]).Remove(UcToRemove);
-
- // on redirige la page sur elle même pour la recharger entièrement
- // mais sans l'UC qui ne marche pas :)
- System.Web.HttpContext.Current.Response.Redirect(System.Web.HttpContext.Current.Request.Url.ToString());
- }
- else
- {
- throw;
- }
- }
// J'ai une liste des UsersControls à charger qui se trouve dans une variable de sessions : Session["Ucs"]
// On va utiliser cette liste pour rechercher quel est l'UC qui cause l'erreur
// Le contenu de la méthode ProcessRequest(HttpContext context) :
public override void ProcessRequest(HttpContext context)
{
// dans le ProcessRequest, on attrappe toutes les exceptions
try
{
base.ProcessRequest(context);
}
catch (Exception ex)
{
// on recheches dans la StackTrace de l'exception quel est l'usercontrol qui apparait
string UcToRemove = "";
foreach (string item in (System.Collections.Generic.List<string>)Session["Ucs"])
{
if (ex.InnerException.StackTrace.Contains(item.Replace(".ascx","")))
{
// si on a trouvé l'UserControl qui cause l'erreur, on note son nom
UcToRemove = item;
}
}
if (UcToRemove != "")
{
// ensuite on l'enlève de la liste des UC à charger
// donc, plus aucun bug :D
((System.Collections.Generic.List<string>)Session["Ucs"]).Remove(UcToRemove);
// on redirige la page sur elle même pour la recharger entièrement
// mais sans l'UC qui ne marche pas :)
System.Web.HttpContext.Current.Response.Redirect(System.Web.HttpContext.Current.Request.Url.ToString());
}
else
{
throw;
}
}