asp.net 异步(async/await)中访问HttpContext的问题

以web api上传文件的官方例子为例:

await Request.Content.ReadAsMultipartAsync(provider);

项目里面多处用到session,包括在其他类库中通过HttpContext获取Session对象,在await之后,直接访问Session均为空了。

怎么办,文件得上传啊。

网络搜索无果,后来发现HttpContext竟然支持Set方法,那么在await之前存储HttpContext的引用,在await之后将引用再赋给HttpContext,这样似乎就通了。

测试后通过,完美运行。

var context = System.Web.HttpContext.Current;
await Request.Content.ReadAsMultipartAsync(provider);
System.Web.HttpContext.Current = context;

 

posted @ 2017-12-19 15:43  starStars  阅读(282)  评论(1编辑  收藏  举报