我想从客户端AJAX请求中启动一个后台工作线程。因此,请求立即返回,后台线程处理处理。会话状态是否可用于此后台线程?
发布于 2011-11-16 08:28:55
是-如果您的后台线程运行在与ASP.NET站点相同的AppDomain中。HttpContext.Current.Session
会让你访问它。当然,忽略了如何最好地处理web应用程序中的多线程,如何最好地处理将依赖注入到后端代码(无论是控制器还是其他技术)以实现可测试性的整个主题,这将使您达到最快和最脏的程度。
发布于 2014-07-12 20:22:48
现在我正在写这个答案,除了处理当前请求的线程之外,会话在其他线程中不可用。如果没有任何请求,则HttpContext的Current属性为空。但是,如果在该后台线程中,您在接收到请求之后使用会话,则在请求处于活动状态且尚未完成时,该会话是可用的。可能会有更好的解决方案来满足您的需求。无论如何,如果您必须使用后台线程,那么访问会话并不是您遇到的唯一问题。你应该考虑你的线程可能发生的错误情况,并且小心你的应用程序不会进入不适当的状态。例如,IIS可能会回收AppDomain (尽管这几乎可以由HostingEnvironment.RegisterObject处理)
https://stackoverflow.com/questions/8144994
复制相似问题