【发布时间】:2013-01-23 04:21:12
【问题描述】:
HttpHandler 是否监听与浏览器的断开连接?
我的猜测是“否”,因为它似乎主要/仅用于动态文件创建,那么为什么会这样呢?
但我在 docs 或 goog 中找不到答案。
提前非常感谢!
背景
我想“中止”一个 HttpHandler,因为目前,我允许大量的 excel 导出(~150k sql 行,所以 ~600k html 行)。由于几乎与代码一样荒谬的原因,我有一个查询会触发用户尝试导出的尽可能多的 sql 行。可以想象,这需要很长时间。
我认为我得到了工作进程的支持,因为用户可能对滞后感到沮丧,并再次尝试以较小的结果。我目前每 30 分钟自动刷新一次工作进程,但我宁愿更快地清理。
我现在没有时间清理 sql,所以我只想监听来自客户端的“中止”,如果“中止”则终止处理程序。
【问题讨论】:
-
@jgauffin 我不太确定.net 等价物是什么,但php 有这个php.net/manual/en/function.connection-aborted.php,我猜大多数.net 页面都有相同的。
HttpHandler会监听客户端断开连接吗? -
你想完成什么?
-
@FrazellThomas 请参阅编辑
-
ASP.NET 公开Request.IsClientConnected。这可以与工作线程一起使用,在许多情况下为“黑匣子”报告生成器创建可中止请求。如果报告生成器可以直接修改为协作(即定期检查状态),那么它可以自行轮询,而无需辅助线程。
标签: c# .net vb.net httphandler abort