未能在sharepoint中捕获ASP.Net Server错误

时间:2010-11-04 10:42:16

标签: javascript asp.net ajax sharepoint

我有一个asp.net控件,其中包含一个位于Ajax更新面板顶部的网格视图。该控件已添加到sharepoint页面。单击按钮时,将调用某些服务器代码来存储网格的内容。

如果服务器代码抛出错误,我想吐出显示错误消息的javascript警告,但由于某种原因,从服务器冒泡的错误是通用500服务器错误,其中不包含任何详细信息原始错误。

任何人都可以解释为什么会这样吗?

非常感谢 格里

1 个答案:

答案 0 :(得分:0)

ASP.NET(和SharePoint)的默认行为是在抛出异常时显示通用错误页面。出于安全原因,此页面隐藏了错误的所有详细信息。使用web.config中的调试设置,您可以获得堆栈跟踪,但这不会为您提供在javascript中轻松操作的内容。

要返回自定义错误页面,您可以设置一个全局未处理的异常处理程序(可能是过度杀戮),或者您可以捕获异常并适当地修改响应。对于rest方法,您将清除响应,将状态设置为500并将错误消息写入响应。对于UpdatePanel,您可以将面板呈现为错误消息或使用脚本显示警报。不知道你是否会在这种情况下设置状态 - UpdatePanel是一个在webforms中伪造真正的ajax的丑陋黑客,所以你不能指望代码特别干净。