想知道是否有人可以提供帮助。我正在尝试实现 ToolScriptManager OnAsyncPostBackError。
ToolkitScriptManager 在母版页上,我设置了 OnAsyncPostBackError 属性:
<ajax:ToolkitScriptManager ID="ToolkitScriptManager"
runat="server" EnablePartialRendering="true"
OnAsyncPostBackError="ScriptManager_AsyncPostBackError">
</ajax:ToolkitScriptManager>
在我的内容页面上,我捕捉到一个异常,记录它然后抛出它
private void LogError(Exception ex, bool full)
{
...
_presenter.LogError(this, error, ex);
throw new ApplicationException(
"Error Occured",
ex
);
}
然后它被母版页上的处理程序拾取
protected void ScriptManager_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)
{
if (e.Exception.Data["GUID"] != null)
{
string _message =
(
e.Exception.InnerException != null
) ? e.Exception.InnerException.Message : e.Exception.Message;
ToolkitScriptManager.AsyncPostBackErrorMessage = _message +
" When reporting this error use the following ID: " +
e.Exception.Data["GUID"].ToString();
}
else
{
ToolkitScriptManager.AsyncPostBackErrorMessage =
"The server could not process the request.";
}
}
这一切都按预期工作,我通过 PageRequestManager EndRequest 发现错误并显示在页面上
问题是我在 Global.asax 中收到一个 Application_Error,说明抛出了“System.Web.HttpUnhandledException”类型的异常。
我想我有点明白了,因为我抛出了我假设的捕获没有捕获的异常?!
关于我缺少什么或实际上我哪里出错了的任何建议?
提前致谢!
伊恩