我只是为某些用户收到了一些js错误,而且只是在使用相当多的ASP.NET AJAX的页面上偶尔出现一些错误。
该页面还进行了一些强烈的SQL查询和一些字符串操作,以突出显示搜索结果中的文本。
这可能是性能的结果吗?在要求苛刻的情况下使用ASP.NET AJAX是否总是安全的,还是我应该寻求其他AJAX技术?
(顺便说一下我有时看到的错误):
消息:Sys.WebForms.PageRequestManagerServerErrorException:在服务器上处理请求时发生未知错误。从服务器返回的状态代码是:12031
消息:Sys.WebForms.PageRequestManagerParserErrorException:无法解析从服务器收到的消息。此错误的常见原因是通过调用Response.Write(),响应过滤器,HttpModules或服务器跟踪来修改响应。 详细信息:在''。
附近解析时出错答案 0 :(得分:1)
这个特殊的例外是非常的 常见的,可以由任何一个引起 以下内容:
<强> 1。调用Response.Write(): 通过直接调用Response.Write(),您可以绕过正常情况 ASP.NET的渲染机制 控制。你写的那些东西都要去了 直接向客户提供 进一步处理(好吧,主要是...)。 这意味着UpdatePanel不能 以特殊格式编码数据。
<强> 2。响应过滤器: 与Response.Write()类似,响应过滤器可以更改 以这样的方式渲染 UpdatePanel不会知道。
第3。的HttpModules:强> 同样,与Response.Write()和响应过滤器相同的交易。
<强> 4。服务器跟踪已启用: 如果我要再次实现跟踪,我会采用不同的方式。 使用有效写出跟踪 Response.Write(),以及如此混乱 我们用于的特殊格式 UpdatePanel中。
<强> 5。调用Server.Transfer(): 不幸的是,没有办法检测到Server.Transfer() 调用。这意味着UpdatePanel 什么时候做不了什么聪明的事 有人调用Server.Transfer()。该 回复发送给客户的回复是 从页面到的HTML标记 你调了自从它的HTML和 不是特殊的格式,它不可能 解析,你得到错误。
完成帖子: ASP.NET AJAX and Sys.Webforms.PageRequestManagerServerErrorException
您可以使用Visual Studio Debug功能获取导致错误的代码。我不太了解,但也许它可以提供帮助,Firebug也可以帮助您查看服务器响应和您提交给服务器的数据。
这是一个视频,您可以在其中查看如何使用Firebug来调试Ajax。 See how I used Firebug to learn jQuery
但是我不认为在重载页面中应该避免使用Asp.NET Ajax。那实际上是Ajax代表什么?我的意思是它也减轻了服务器发送小块页面的速度,而不是再次请求整个页面。
答案 1 :(得分:1)
众所周知,ASP.NET AJAX不是性能最强的方法,但我认为这是为了换取实现它的简单方法。
我知道您不能在更新面板中执行任何Response.Writes。这将导致您的第二个错误。