2011-04-14 21 views
1

如果浏览器请求ASP.Net页面,然后用户单击“停止”或导航,我虽然浏览器会关闭连接,ASP.Net可能会停止执行。我不认为是这种情况,因为我测试这个时不会调用Dispose()。无论如何要知道浏览器/客户端何时断开连接然后停止页面执行?ASP.Net:如何在浏览器断开连接时停止页面执行?

回答

2

您可以检查IsClientConnected

if (!Response.IsClientConnected){ 
     HttpContext.Current.Response.End(); 
     return; 
    } 
+1

肯定,但在长期运行过程中,将无法正常工作。比方说,例如,页面正在执行一些SQL查询并且用户导航 - 这很好,可以捕获并终止SqlConnection,这样SQL服务器就不会徒劳地处理查询。 – 2011-04-14 22:30:50

+0

@Josh M.多久了? 1秒 ? 10秒? SQL查询需要处理?是的,一般情况下,除了这个功能外,没有一个触发器可以查看用户是否连接了。如果你有太多的工作要做,你可以检查一下,以避免一些长时间的处理。 – Aristos 2011-04-14 22:33:18

+0

@Josh页面通常需要不到一秒的时间来完成该过程。需要更长时间的页面需要特别的照顾,也许还有一个进度条 - 也许这样的检查就是这样一次。 – Aristos 2011-04-14 22:34:52

相关问题