UpdatePanel异步回发导致无限的HTTP POST循环和PageRequestManagerParserErro



问题:

  • 在Sharepoint 2010 ASP.NET页面中,有一个UpdatePanel异步回发,它在加载HTTP GET页面后执行无限的HTTP POST循环。
    • 所有HTTP GET(初始页面加载(和HTTP POST(更新面板后发(操作都接收到HTTP/1.1 200 OK
  • 收到HTTP POST的HTTP/1.1 200 OK响应后,可以在web浏览器控制台中看到错误消息:

错误:Sys.WebForms.PageRequestManagerParserErrorException:无法分析从服务器收到的消息。导致此错误的常见原因是通过调用response.Write((修改响应、启用响应筛选器、HttpModule或服务器跟踪。

详细信息:分析'<附近时出错;__VIEWSTATE变量的值>'中的部分文本字符串。

更新面板HTTP响应分隔符数据格式:

在HTTPPOST的响应中,我注意到管道("|"(分隔格式(<内容长度>|<类型>|<控件ID>||<content-text>(HTML内容的内容长度小于HTML内容文本的实际长度。HTML内容包含UTF-8数据,因此字符长度和字节长度不同。然而,考虑到这一点似乎也无法使长度匹配。

在互联网上找到了一些关于更新面板HTTP响应格式的信息,但我似乎找不到详细的格式规范或详细的解析器行为信息:

  • http://clementscode.blogspot.fi/2011/01/updatepanels-response-text.html

特定于响应管道分隔符格式的问题:

  • 是格式的<内容长度>意思是字节长度、字符长度或其他什么
  • 在情况<内容长度>与<内容文本>?解析器能生存下来吗
  • 我尝试了大量搜索,但没有找到有关的规范UpdatePanel响应的管道分隔格式。有吗详细的格式和解析器规范

一般问题:

之前的问题是基于这样的假设,即内容长度不匹配可能导致PageRequestManagerParserErrorException和无限HTTPPOST循环。

是否还有其他可能导致这种无限循环问题?

问题已解决。我将在这里回答大家提出的一些问题。

是否还有其他可能导致这种无限循环问题?

在这种情况下,循环是由分析器错误引起的。根本原因是HTTP数据路由软件在两者之间发生了更改。新软件在到达最终用户的web浏览器之前修改了UpdatePanel HTTP响应数据,这导致了数据的畸形和解析器错误。

格式的含义是字节长度、字符长度还是其他什么?

这是字符长度。

我尝试了大量搜索,但没有找到有关UpdatePanel响应的管道分隔格式的规范。是否有详细的格式和解析器规范?

是否指定了语法分析器行为以防与不匹配?解析器能生存下来吗?

找不到规范,但如果内容长度不同,解析器似乎无法生存。

相关内容

最新更新