您的位置:首页 > 产品设计 > UI/UE

Sys.WebForms.PageRequestManagerParserErrorException

2008-08-12 16:23 295 查看
最近需要用timer局部刷新label,是用.NET 2008的AJAX 扩展的ScriptManager,ScriptManager,Timer控件,结果在运行的时候就出现异常:

Microsoft JScript 运行时错误: Sys.WebForms.PageRequestManagerParserErrorException: 无法分析从服务器收到的消息。之所以出现此错误,常见的原因是: 在通过调用 Response.Write() 修改响应时,将启用响应筛选器、HttpModule 或服务器跟踪。详细信息: 分析附近的“已登录102|updatePanel|U”时出错。

无解就到网上看了很多资料,一大堆的鸡肠不大好理解,看了很久,有提到说要去掉Response.Write这样的语句,而且在错误信息上详细信息说了“已登录102|updatePanel|U”时出错“,尝试去掉Response.Write,就没有发生异常了。

下面是在网上搜到的一人兄的解释:

UpdatePanel 與 Sys.WebForms.PageRequestManagerParserErrorException

朋友問:「為什麼程式加了 ScriptManager 和 UpdatePanel 之後,原本沒問題的程式,卻出現 Sys.WebForms.PageRequestManagerParserErrorException?」

Eilon Lipton 有篇文章提供了很詳細的說明,包括該錯誤的意義、發生原因、以及解決方法:Sys.WebForms.PageRequestManagerParserErrorException - what it is and how to avoid it

常見的原因包括:

在程式中呼叫 Response.Write 輸出資料至用戶端頁面。這會導致 UpdatePanel 無法對這些資料編碼。

網站有使用 response filter。

網站有使用 HTTP modules。

開啟網頁的 trace 功能。

在程式中呼叫 Server.Transfer。

那位朋友碰到的情況,是程式中使用 Server.Transfer 的方式轉址。改成 Response.Redirect 就解決了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐