Sys.WebForms.PageRequestManagerParserErrorException:正常渲染和部分渲染有什么区别?

时间:2010-07-07 07:30:28

标签: asp.net-ajax reverse-proxy httplistenerrequest

我在c#中创建代理服务器。我做了它的工作,除了部分回发的情况。在部分回发期间,它抛出异常说


来自网页的消息

Sys.WebForms.PageRequestManagerParserErrorException:无法解析从服务器收到的消息。此错误的常见原因是通过调用Response.Write(),响应过滤器,HttpModules或服务器跟踪来修改响应时。

详细信息:解析'

附近时出错

<!DOCTYPE html P'。


确定

当我尝试直接访问时,应用程序正常工作。当我通过我的代理服务器访问时发生错误。常见原因,错误请求在应用程序中不存在,因为它在直接访问时工作正常。

在正常回发和异步回发之间我不知道存在一些差异。当我调试时,我发现正常和部分回发之间没有任何区别。从我知道的错误,代理服务器返回整个页面html而不是仅返回UpdatePanel html。

任何人都可以帮助如何使其正常工作吗?

我的代理服务器应用程序基本上是在任何httprequest的特定端口上侦听,并且基于它获得的HttpListenerRequest,它创建一个HttpWebRequest并将请求发送到原始Web应用程序。然后它接收HttpWebResponse并从中创建一个HttpListenerResponse并将其发送到浏览器。

我的代码基于http://www.codeproject.com/KB/IP/reverseproxy.aspx

中提供的代码

提前致谢

1 个答案:

答案 0 :(得分:0)

我找到了问题的解决方案。普通的HttpListenerRequest和部分HttpListenerRequest之间有一些区别。实际上帧添加了一个名为“x-microsoftajax”的标题。在创建HttpWebRequest时,您还要添加此Header。这将解决ParserError,但如果您使用的是表单身份验证,它会将您重定向到登录页面。通过将HttpListenerRequest中的“Cookie”标头添加到您的HttpWebRequest,您也可以解决此问题。