0

我正在 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/r ​​everseproxy.aspx 中给出的代码

提前致谢

4

1 回答 1

0

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

于 2010-07-07T09:42:12.187 回答