从ASP.NET页面的代码隐藏产生线程是有风险的,因为工作进程偶尔会被回收并且你的线程会死掉.
如果由于用户在网页上的操作而需要启动长时间运行的进程,最好的办法是在MSMQ中关闭一条消息,并让一个单独的后台服务监视队列.只要它想完成任务,该服务就可以使用,并且网页几乎可以立即完成其工作.您可以通过对Web方法的异步调用来完成相同的操作,但不要依赖于在Web方法完成工作时获取响应.从代码隐藏,它需要快速点火.
有一件事要注意过期的事情(我认为httpContext会这样做),如果你将它用于"火与忘记"的操作,请记住,如果asp.net清理代码在你的操作完成之前运行的话,您将无法访问某些信息.
程序化缓存是我立即想到的一个领域。这是一个很棒的功能,需要谨慎使用。由于它是跨请求共享的,因此您必须在更新它之前对其加锁。
我要检查的另一个地方是访问文件系统的任何代码,例如写入日志文件。如果一个请求对某个文件有读写锁,那么其他并发请求如果处理不当就会出错。
| 归档时间: |
|
| 查看次数: |
3583 次 |
| 最近记录: |