【发布时间】:2015-12-03 19:47:56
【问题描述】:
我在使用任务调用的方法中丢失了 HttpContext。谷歌搜索似乎表明这段代码应该可以工作。知道我在这里可能做错了什么吗?
void ThisMethodIsCalledFromASPNet()
{
var context = System.Web.HttpContext.Current; // Here I am getting valid context
Task.Factory.StartNew( () => DoSomething(), CancellationToken.None, TaskCreationOptions.None,
TaskScheduler.FromCurrentSynchronizationContext());
}
void DoSomething()
{
var context = System.Web.HttpContext.Current; // Here I am getting null
}
【问题讨论】:
-
如果您将
DoSomething更改为接受HttpContext作为参数会怎样? -
当然,但我希望有更好的方法
-
我认为没有比这更好的方法了。
-
@johnsmith 只有在处理请求的线程中才能获取上下文。在任何其他线程中,您都会得到 null。