我有一个最近优化的大型C#.net项目,它运行良好。尽管它是一个相当大的代码库,所以我对它不十分详细。
也就是说,一切工作都很好,直到偶尔用户会感到沮丧的是,页面需要花费几秒钟的时间来加载,并开始一遍又一遍地刷新页面。看看我在IIS中的活动进程,一位用户在大约几秒钟内刷新了同一页面300次(因此,不间断地刷新了5分钟)
由于此页面已经有些慢,这使服务器不知所措。 100%CPU大约一个小时,直到我回收了该过程,然后杀死了旧的w3wp。立即一切恢复了活力,一切又很快了。
是否有任何方法可以检测到此行为(即该用户/会话已在加载页面),而不是完全刷新,只需just带已运行的线程,或取消第一个线程,或者实际上可以缓解这种情况?
答案 0 :(得分:1)
非常简单的解决方案是设置会话变量(例如,请求页面的时间)。然后,在对该页面的每个请求上,您都知道该页面是在请求之前和请求的时间,因此您可以选择中断。