【问题标题】:DataReader works In between Browser CloseDataReader 工作在浏览器关闭之间
【发布时间】:2013-02-26 01:11:25
【问题描述】:

使用 ADO.NET Datareader,用户从具有 1000 行的数据库表中提取数据。他在这期间关闭了浏览器。

这是在仅获取 50 条记录之后。数据阅读器会发生什么?它会保持连接吗?

然后会获取 1000 条记录,然后呢?垃圾收集器会很快收集和处理吗?

【问题讨论】:

标签: asp.net .net ado.net


【解决方案1】:

虽然 mdmullinax 是正确的,您应该将所有内容都包含在 using 语句中以确保正确清理连接,但您的问题与 DataReader 的实现方式无关。

一般来说,即使浏览器断开连接,页面也会继续执行。

因此,如果 DataReader 正在从服务器读取响应的中途,它将在 DataReader 发出信号返回其处理已完成之前继续提取其余记录。

然后页面的其余代码完成执行并将响应刷新到浏览器。当然,此时浏览器早已不复存在,因此这些数据包最终会被丢弃......除非有东西正在检查 Response.IsClientConnected 属性。请记住,IsClientConnected 属性并不能完全证明,因为在不通知服务器的情况下,另一端的浏览器可能会以多种方式消失。

更多信息请看这里:Does asp.net lifecycle continue if I close the browser in the middle of processing?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 2017-10-16
    • 2012-11-05
    • 2016-09-26
    • 2014-11-26
    • 1970-01-01
    • 2020-08-23
    相关资源
    最近更新 更多