这个问题是关于ASP.NET强加给我的限制(如脚本超时等)。asp.net无限循环 - 可以这样做吗?
我有一个服务在ASP.NET下运行,我想创建一个对应的监视服务。
主要服务的数据位于数据库中。
我在考虑让监控服务在一个循环内以1秒的间隔查询数据库,这个循环由远程客户端完成的http请求发出。
现在,这个监控的实际服务将通过客户端http请求来完成,该请求会使脚本循环(用C#编写),当检测到新数据时,它会将该数据聚合到该循环请求输出缓冲区中,发送它,并退出循环,从而完成请求。
客户将不得不发出新的请求,以保持获得更新。
这实际上就像TCP(就像Windows IOCP一样);您请求数据服务并等待它。当它到达时,你发出另一个请求。
我的实际问题是:你以前做过吗?它是如何去的?我受限于IIS/ASP.NET框架强加的一些(可配置)限制吗? 我在这种情况下有什么限制,或者,有什么更好的选择,而不是太复杂的东西?
请注意,我一次不会期望很多此类监控请求,可能只有几十个。
然而,这意味着10个这样的并发监视请求将保持10个线程繁忙,问题是;它可以伤害IIS /性能吗? IIS将如何处理10个繁忙线程?它会发出更多?有什么限制?这只是我能想到的极限的一个例子。
感谢您的答复哈桑。所以你建议为监控服务提供一个服务? – Poni 2010-12-07 14:19:51
它可能是一项服务,它可能是一个预定的控制台应用程序 - 这是一个实施问题,但基本上 - 是的,我建议创建一个监视服务并让ASP.NET页面只显示监视报告到最后用户。这样你就可以得到一个更清洁的架构,并且你不会受限于少量的用户,查看监控日志(因为查看将是非常便宜的操作) – Hassan 2010-12-07 14:40:52