【问题标题】:HttpContext.Current is null when using async使用异步时 HttpContext.Current 为空
【发布时间】:2019-05-03 00:13:49
【问题描述】:

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

我的代码是:

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

【问题讨论】:

标签: asp.net-mvc


【解决方案1】:

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

感谢您的提示。

【讨论】:

    【解决方案2】:

    改用HostedEnvironment.MapPath

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

    【讨论】:

      【解决方案3】:

      这里 - 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

      【讨论】:

        猜你喜欢
        • 2014-08-24
        • 2019-03-25
        • 1970-01-01
        • 1970-01-01
        • 2018-07-27
        • 1970-01-01
        • 1970-01-01
        • 2013-10-07
        • 2014-09-17
        相关资源
        最近更新 更多