javascript - How to get real exception message when using UpdatePanel? -
i'm not seeing real error in custom error page when using updatepanel. in global.asax have following code:
sub application_error(byval sender object, byval e eventargs) 'get exception dim lasterror = server.getlasterror() if lasterror isnot nothing dim ex exception = lasterror.getbaseexception() if ex isnot nothing 'log error if log.iserrorenabled log4net.threadcontext.properties("method") = ex.targetsite.name log4net.threadcontext.properties("userid") = user.current.username log.error(ex.message, ex) end if end if end if end sub
if review log or set breakpoint can see i'm getting timeout issue. have following code send user error page , display error:
<script language="javascript" type="text/javascript"> function endrequesthandler(sender, args) { if (args.get_error() != undefined) { // let framework know error handled, // doesn't throw javascript alert. args.set_errorhandled(true); var errormessage = args.get_error().message.replace(/</gi, "<").replace(/>/gi, ">"); // if there is, show custom error. window.location = _root + 'showerror.aspx?error=' + encodeuri(errormessage) } } </script>
but error i'm getting args.get_error() instead:
sys.webforms.pagerequestmanagerservererrorexception: unknown error occurred while processing request on server. status code returned server was: 500
what have timeout error error page?
i found here: http://msdn.microsoft.com/en-us/library/bb398934.aspx
although example wouldn't compile , didn't give me needed got me in right direction. able control message gets put in async exception using code:
protected sub scriptmanager1_asyncpostbackerror(byval sender object, byval e system.web.ui.asyncpostbackerroreventargs) if e.exception.data("extrainfo") isnot nothing scriptmanager1.asyncpostbackerrormessage = _ e.exception.message & _ e.exception.data("extrainfo").tostring() else scriptmanager1.asyncpostbackerrormessage = e.exception.message end if end sub
i had remove defaultredirect in web.config , conditionally redirect if not async call. did changing global.asax this:
sub application_error(byval sender object, byval e eventargs) 'get exception dim lasterror = server.getlasterror() if lasterror isnot nothing dim ex exception = lasterror.getbaseexception() if ex isnot nothing 'log error if log.iserrorenabled log4net.threadcontext.properties("method") = ex.targetsite.name log4net.threadcontext.properties("userid") = user.current.domainname log.error(ex.message, ex) end if if not isasyncpostbackrequest(request) server.transfer("~/showerror.aspx") end if end if end if end sub public function isasyncpostbackrequest(request httprequest) boolean dim values = request.headers.getvalues("x-microsoftajax") if values isnot nothing each value in values dim parts = value.split(","c) each part in parts if part.trim() = "delta=true" return true end if next next end if return false end function
Comments
Post a Comment