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, "&lt;").replace(/>/gi, "&gt;");              // 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

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -