BCS*_*BCS 2 asp.net background-process
我有一个ASP.NET页面加载太长时间.一点点测试表明,服务器端日志记录占用了相当多的时间(并且因为用户永远不需要查看日志记录结果)我想延迟它直到页面加载完毕.
有一个简单的方法吗?
我已经尝试将它放在页面的Disposed事件中,但这似乎并不会触发,Unload但事件发生的时间太快了.我宁愿不必产生一个线程,但我可能能够做到这一点.
我不是在寻找AJAX.我想做一个正常的整页加载,然后在页面加载后(从客户端看)进行更多的处理.
这似乎有效:
protected void Page_Unload(object sender, EventArgs e)
{
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();
Thread.Sleep(20000); // Do processing here instead of sleeping :)
Debug.WriteLine("Done!");
}
Run Code Online (Sandbox Code Playgroud)
你提到Unload事件过早发生,但我认为它是正确的.您只需手动关闭连接.法拉盛似乎也是强制性的,这有点奇怪,因为我认为当你关闭时,冲洗是隐含的.
这可能有一些缺点,因为它使进程处理请求忙,无法处理下一个HTTP请求.但是,IIS7对并发请求的数量有可配置的限制.你想要简单,我认为这很简单.