【发布时间】:2012-02-14 01:31:06
【问题描述】:
我有一个 C# ASP.NET 应用程序,它启动大约 25 个不同的线程,运行一个名为 SiteCrawler.cs 的类中的一些方法。
在HttpContext.Current.Session 中,我想保存用户的搜索结果,并在所有线程完成运行后呈现给用户。我的问题是HttpContext.Current 对象在生成的线程中为空,因为它在那里不存在。
由于应用程序是多线程时的限制,我还有哪些其他选项可以在不使用会话的情况下保存用户/会话特定数据?
我试图搜索 Stackoverflow 的每一寸以找到解决方案,但没有任何运气......
【问题讨论】:
-
我猜你总是可以在创建新线程并更新其中的会话时传递当前的 HttpContext
-
不是可以运行25个线程,在asp.net线程中收集结果,然后将完整的结果存储在你的会话中吗?
-
根据经验,为“长时间运行的进程”生成线程在面向 Web 的应用程序中是个坏主意。
-
musefan - 我想过,但我不确定这是否是个好主意,因为生成的线程会改变传递的 HttpContext 的内容,到那时也会有所不同。
-
Wouter de Kort - 您将如何实现这一目标?
标签: c# asp.net session httpcontext