关闭浏览器或单击“中止”时脚本不会停止

时间:2010-01-22 10:13:06

标签: c# asp.net events

我写了一个webcrawler,它在do while循环中调用一个3秒的网页

完全有7000个站点...我解析数据并将其保存在我的数据库中。

有时因为脚本加载了很长时间,我在浏览器中出现超时,

但在后台我继续。我在我的数据库中看到了这一点。

我可以阻止这种情况吗?..现在只要我停止网络服务器就可以了。

谢谢你,并致以最诚挚的问候。

2 个答案:

答案 0 :(得分:0)

您的网页正在启动服务器端流程。杀死您的浏览器或关闭它不会阻止它。听起来像一个网页来控制这是错误的方法,你应该看一个连接的应用程序形式,如WinForms / WPF应用程序。有很多方法可以让它与ASP.NET一起使用,但它们并不简单。我认为你刚刚选择了错误的技术。

答案 1 :(得分:0)

从网页开始这样一个密集的,长时间运行的过程几乎不是一个好主意。有很多原因,但主要原因是:

1)如果您在浏览器中出现超时(这是您的情况),您收集的数据可能不会显示。

2)如果在浏览器中点击刷新会怎样?是否会再次启动整个过程?对于攻击者来说,这是一个容易攻击的目标,如果他想占用你所有的服务器资源的话。

3)您抓取的数据是否真的可能会发生变化,以至于您需要“实时”抓取? 99%的案例也可以在运行爬网的后台定时作业中提供,而前端只显示数据库的内容。

我会认真地建议你重新考虑你的抓取策略,使其更加可控和稳定。