Sys.WebForms.PageRequestManagerServerErrorException:在服务器上处理请求时发生未知错误."

Jam*_*123 34 javascript c# asp.net ajax jquery

我在页面上有几个更新面板和jquery选项卡.而且我还在更新面板上加载几个用户控件.用户等待几分钟后(未检查时间约40分钟).当用户从提交按钮发送请求时,它给出了以下错误?

'Sys.WebForms.PageRequestManagerServerErrorException:
Sys.WebForms.PageRequestManagerServerErrorException: An unknown 
error occurred while processing the request on the server. The status 
code returned from the server was: 0' when calling method: 
[nsIDOMEventListener::handleEvent]
Run Code Online (Sandbox Code Playgroud)

我无法追踪此问题以解决问题.但我相信.这是由Ajax引起的.大师,如果你知道解决方案.请告诉我.

Jam*_*son 29

当您将控件注册为AsyncPostbackTrigger多个更新面板中时,有时会发生此问题.

如果这不是问题,请尝试在脚本管理器声明后添加以下内容:

<script type="text/javascript" language="javascript">
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    function EndRequestHandler(sender, args){
        if (args.get_error() != undefined){
            args.set_errorHandled(true);
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

这里讨论的还有一些解决方案:http://forums.asp.net/t/1066976.aspx/9/10

  • 我添加了这段代码.现在没有错误显示.但即使回发提交按钮也没有发生. (5认同)

Scr*_*rks 29

我有这个问题,我花了几个小时试图解决它.

解决方案滴答答案将无法修复错误只处理它.

最好的方法是检查IIS日志文件,错误应该在那里.似乎更新面板封装了真实错误并将其输出为"javascript错误".

例如,我的错误是我忘了创建一个类[Serializable].虽然这在本地运行良好,但在服务器上部署时却无法正常工作.

  • 同上这里.查看我的IIS服务器的事件查看器中的应用程序日志,发现我正在调用的ADLookup服务失败.因为它包含在Ajax调用中,所以Web前端给出了原始帖子中的非常错误. (3认同)
  • 同意。接受的解决方案只是忽略该错误。我还在事件查看器的应用程序日志中发现了我的具体问题。 (2认同)

小智 8

当我在UpdatePanel中使用GridView中的按钮时出现此错误...我的代码被删除我发现上述错误是由于另一个内部错误引起的"从客户端检测到一个潜在危险的Request.Form值"

最后我发现页面上的一个TextBox有XML/HTML内容,当我删除xml/HTML并测试按钮点击时,这会导致上面的错误...它按预期工作.

  • @ShaneCourtrille:如果您尝试使用表单向服务器提交HTML,默认情况下,ASP.NET将显示错误消息.例如,如果要求您编写用户名,并编写"<b> Chris </ b>",则页面将拒绝输入.这旨在防止所谓的[XSS](https://www.owasp.org/index.php/XSS).XML/HTML可能是有效的标记(`<b>`),或者只是看起来像HTML的字符串(我喜欢<b`). (2认同)

小智 5

兄弟这段代码不是解决方案只是改变它

<script type="text/javascript" language="javascript">
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    function EndRequestHandler(sender, args){
        if (args.get_error() != undefined){
            **alert(args.get_error().message.substr(args.get_error().name.length + 2));**
            args.set_errorHandled(true);
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

你会看到错误,但你不是把它扔在UI上.


Cde*_*eez 5

不要重新打开旧线程,但这个解决方案也很有帮助 -

添加validateRequest="false"<%@ Page指令.

这是因为ASP.net检查浏览器输入的危险值.此链接中的更多信息


JCO*_*CO9 5

我遇到了同样的问题,在这里我给出了我的问题和解决方案,希望这对某人有帮助:

遵循其他人的建议,我转到了服务器的日志(在我的情况下为Windows Server 2012):

控制面板->管理工具->事件查看器

然后在左侧:

Windows日志->应用程序:

在此处输入图片说明

在警告中,我发现了来自站点的消息,在我的情况下,这是由于引用为空:

*Exception type: NullReferenceException 
Exception message: Object reference not set to an instance of an object.*
Run Code Online (Sandbox Code Playgroud)

然后检查日志中描述的功能,我发现了一个未初始化的对象,仅此而已。

因此,它可能是代码中的空引用异常。希望有人觉得有用,问候。