J'utilise ELMAH pour la journalisation des erreurs et si l'erreur survient pendant la publication partielle (à partir d'un gestionnaire d'événement d'un contrôle enveloppé dans un panneau de mise à jour), elle consigne les erreurs deux fois. Je n'utilise pas le module "MsAjaxDeltaErrorLog", mais enregistre par programme les erreurs du gestionnaire d'événements "AsyncPostBackError" du contrôle ScriptManager. Je fais cela pour éviter la redirection vers la page générique pour les erreurs survenues pendant les postbacks partiels. J'ai désactivé la redirection dans web.config. voici le code qui enregistre l'exceptionErreurs Ajax enregistrées deux fois par ELMAH
protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)
{
HttpContext.Current.Items["AjaxError"] = "Ajax";
ErrorSignal.FromCurrentContext().Raise(e.Exception,HttpContext.Current);
}
and in Global.asax, I am redirecting manually
protected void ErrorLog_Logged(object sender, ErrorLoggedEventArgs e)
{
if (!HttpContext.Current.Items.Contains("AjaxError"))
{
var pageName = e.Entry.Error.StatusCode == 404 ? "FileNotFoundPage" : "GenericErrorPage";
var redirectPage = ConfigurationManager.AppSettings[pageName];
Response.Redirect(String.Format("{0}?ExceptionId={1}&ExceptionMessage={2}", redirectPage, Server.UrlEncode(e.Entry.Id),
Server.UrlEncode(e.Entry.Error.Message)));
}
}