ASP.NET Ajax错误:Sys.WebForms.PageRequestManagerParserErrorException

Phi*_*ett 23 .net javascript asp.net exception-handling ajax.net

在尝试执行任何 Ajax活动时,我的网站一直给我间歇性错误.我得到的信息是

Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. Common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled.

Details: Error parsing near '

<!DOCTYPE html P'.
Run Code Online (Sandbox Code Playgroud)

所以它显然是某种服务器超时或服务器只是返回错误的垃圾.不幸的是,这通常不会发生

spl*_*tne 22

Eilon Lipton有一篇很棒的博客文章.它包含许多关于如何避免此错误的提示:

Sys.WebForms.PageRequestManagerParserErrorException - 它是什么以及如何避免它

阅读评论.有一个人有同样问题的评论:" 我解决了它在IIS上更改我的应用程序池的服务器空闲时间.它只有5,所以我增加了它,现在有效."

"UpdatePanel控件使用异步回发来控制页面的哪些部分被渲染.它使用客户端上的一大堆JavaScript和服务器上的一大堆C#来实现.

异步回发与常规回发完全相同,除了一件重要的事情:渲染.异步回发与常规页面一样经历相同的生命周期事件(这是我经常被问到的问题).

只有在渲染阶段,事情才会有所不同.我们仅捕获我们关心的UpdatePanel的呈现,并使用特殊格式将其发送到客户端.此外,我们还会发送一些其他信息,例如页面标题,隐藏的表单值,表单操作URL和脚本列表."

该错误的最常见原因:

  1. 调用Response.Write():
  2. 响应过滤器
  3. 的HttpModules
  4. 服务器跟踪已启用
  5. 调用Server.Transfer()


CSh*_*per 9

回发后可能会发生错误.在这种情况下,您可以通过向updatepanel添加PostBackTrigger并引用导致问题的按钮来查看有关错误的详细信息:

    <asp:updatepanel ID="updatepanel1" runat="server">
        <Triggers>
            <asp:PostBackTrigger ControlID="button1" /> 
        </Triggers>
        <ContentTemplate>

        </ContentTemplate>
    </asp:updatepanel>
Run Code Online (Sandbox Code Playgroud)