【发布时间】:2010-08-25 18:43:14
【问题描述】:
在 ASP.Net 中,我想在页面已经发送给用户之后运行一些代码(日志记录、其他清理)。我不希望此代码干扰客户端接收响应所需的时间。我尝试将此代码放在页面的 OnUnload 部分,但通过测试(使用断点或繁忙的等待循环),客户端实际上不会显示页面,直到 OnUnload 中的代码完成执行。即使此时响应对象不再可用,因此我假设缓冲的响应已发送到客户端,但客户端仍然不会显示页面,直到 OnUnload 完成执行。目前似乎可行的唯一方法是启动一个新线程来完成这项工作,并让 OnUnload 立即完成。但是,我不知道这是否安全。如果在页面发出后执行时间过长,服务器会杀死线程吗?有没有更正确的方法来做到这一点?
【问题讨论】:
-
您可以使用消息队列并让后台进程处理它吗?更像是 Web 角色和辅助角色应该如何在 Azure 中相互交互?
-
我试图帮助投票,但看起来有人真的不喜欢这个问题!
-
如果问题太久没有回复,我通常会删除它们。通常你以后不会得到一个,它有助于限制来自 SO 的未回答(并且基本上无用)的问题的数量。
-
什么类型的清理?异步页面会有帮助吗? msdn.microsoft.com/en-us/magazine/cc163725.aspx#S2