无法捕获assync回发(带有updatepanel的asp.net页面)上的错误

无法捕获assync回发(带有updatepanel的asp.net页面)上的错误,asp.net,ajax,updatepanel,Asp.net,Ajax,Updatepanel,我使用updatepanel并为endRequest注册处理程序以捕获错误: Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 在服务器上引发异常以测试客户端。问题是IE和FireFox中从未调用EndRequestHandler!它在歌剧和狩猎中的效果与预期一样 在一个只有几个控件的简单页面上,它在所有浏览器中都能正常工作。我发现Firebug的响应是内容长度:67,但没有响应(响

我使用updatepanel并为endRequest注册处理程序以捕获错误:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
在服务器上引发异常以测试客户端。问题是IE和FireFox中从未调用EndRequestHandler!它在歌剧和狩猎中的效果与预期一样

在一个只有几个控件的简单页面上,它在所有浏览器中都能正常工作。我发现Firebug的响应是内容长度:67,但没有响应(响应的空选项卡)!预期的反应是

53 |错误| 500 |对象引用未设置为对象的实例|

比如说

我没有精确地调试ajax库,但我看到一些代码运行以准备页面加载事件(可能是因为它无法检测到错误?),但是响应中没有关于updatepanels的信息,并且尝试使用updatepanels对象时出错,该对象为null。该错误被try finally块捕获

因此,服务器上(asp.net页面中)可能存在导致问题的原因,但我找不到它。有人能帮我吗

  • 响应的空选项卡是Firebug的bug。我也遇到了
  • 尝试更新到MS Ajax的最新版本:

  • 最新的MS Ajax仍然存在同样的问题

    我设法解决了服务器上的问题:

    protected override void OnError(EventArgs e)
    {
        base.OnError(e);
        if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
        {
            Response.Clear();
            Response.Write("53|error|500|Bad.|");
            Response.Flush();
        }
    }
    

    因此,我认为服务器端有问题。

    1。我不知道这是否是一个bug,因为在IE调试器中我看到XMLHttpRequest对象的responseText是一个空字符串!2.我试试这个。