使用async时,HttpContext.Current为null

时间:2011-03-15 20:17:50

标签: asp.net-mvc

我正在尝试调用需要从服务器读取文件的异步方法。只要方法是异步的,HttpContext.Current就变为空。如果我称它为正常,它可以正常工作。我该如何解决这个问题?

我的代码是:

System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath(path))

3 个答案:

答案 0 :(得分:3)

要调用的正确类是HostingEnvironment.MapPath(path);

感谢小费bvs。

答案 1 :(得分:1)

改为使用HostedEnvironment.MapPath

System.IO.File.ReadAllText(HostedEnvironment.MapPath(path))

答案 2 :(得分:0)

此处 - http://blogs.msdn.com/b/webdev/archive/2012/11/19/all-about-httpruntime-targetframework.aspx - 是关于与async / await一起使用的HttpContext的文档。

简而言之,你需要做两件事之一:

  • 在应用程序设置中设置密钥:<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  • 将您的框架设置为4.5