【问题标题】:Why do I get Sys.WebForms.PageRequestManagerServerErrorException: The request was aborted: The request was canceled?为什么我得到 Sys.WebForms.PageRequestManagerServerErrorException: The request was aborted: The request was cancelled?
【发布时间】:2020-08-22 05:50:09
【问题描述】:

所以我正在创建一个 SQL 查询,该查询最多需要 10 分钟来检索大约 20K 数据元素。这本身没有问题,因为我能够设置断点并查看检索到的信息并将它们显示在 DataGrid 中,并且没有发生错误......显然。

但是,在显示的网站上,我在该 DataGrid 上看不到任何元素,当我转到开发人员工具的控制台时,我看到了

Sys.WebForms.PageRequestManagerServerErrorException:Sys.WebForms.PageRequestManagerServerErrorException:请求被中止:请求被取消。

我一直在网上寻找有关此错误的回复,我发现这可能是咨询超时,但是我能够在检索数据后看到数据,因此它看起来更像是一个问题与 DataGrid 组件。有什么帮助吗?

【问题讨论】:

    标签: c# sql asp.net datagrid aspxgridview


    【解决方案1】:

    所以我正在创建一个 SQL 查询,该查询最多需要 10 分钟来检索大约 20K 数据元素。那本身没有问题

    这本身就是一个问题。服务器可能会在 0.5-5 分钟后取消连接。而且从经验来看,检索的数据量也是无用的。

    没有人能够以任何有意义的方式处理 20000 条记录。在您有机会向用户展示之前,您必须应用进一步的过滤。如果用户可以处理 200 个条目,那将是您检索的 1%。而且它可能会更少——我猜可能是 20 个。

    从数据库中检索大量数据,然后在代码中进行过滤是一个非常常见的初学者错误。 Thgat 实际上只会在数据库服务器开始时更擅长的事情上浪费 RAM、CPU 周期和网络带宽。这对于 WebServers 来说更糟糕,因为它真的没有内存或 CPU 周期可供使用。

    在查询本身中执行尽可能多的过滤、排序、分页甚至处理。

    【讨论】:

      猜你喜欢
      • 2021-03-23
      • 2019-04-23
      • 2023-04-03
      • 2021-01-18
      • 2022-10-16
      • 1970-01-01
      • 1970-01-01
      • 2018-10-24
      • 2022-12-01
      相关资源
      最近更新 更多