我在web.config文件中启用了自定义错误:
<customErrors mode="On" defaultRedirect="~/ErrorPage.aspx" />
当UpdatePanel中的异步回发期间发生错误时,响应将作为代码200返回,内容将设置为错误页面。
当UpdatePanel尝试解析响应并抛出JavaScript异常时,这会中断:
Sys.WebForms.PageRequestManagerParserErrorException: 无法解析从服务器收到的消息。
有没有办法在客户端正确处理这个问题而不必禁用自定义错误,因为我不想透露任何异常细节?
答案 0 :(得分:4)
处理此问题的一种方法是在OnAsyncPostBackError
控件上连接ScriptManager
事件:
<asp:ScriptManager ID="ScriptManager1" runat="server"
AllowCustomErrorsRedirect="False"
OnAsyncPostBackError="ScriptManager1_AsyncPostBackError" />
这个page on MSDN有一个完整的例子,使用这个方法来处理异步回发错误。
修改强>
要解决自定义错误页面的问题,请务必将AllowCustomErrorsRedirect
上的ScriptManager
属性设置为false
。一旦我将此属性设置为false,即使我在web.config中设置了CustomErrors mode =“On”,我也能够使MSDN示例正常工作。