WebAPI上传必须是Async吗?

时间:2015-06-23 09:07:09

标签: c# asp.net-web-api async-await

我一直在阅读网络和StackOverflow上的ASP.NET WebAPI文件上传。

我见过的所有问题(直接或间接)都是the MSDN article example with the async upload

这是处理文件上传的事实上的方法吗?上传到WebAPI的文件必须使用Task<>async吗?

1 个答案:

答案 0 :(得分:2)

一位朋友刚问我这个问题,我相信简短的回答是肯定的......有警告。

相关API由https://msdn.microsoft.com/en-us/library/system.net.http.httpcontentmultipartextensions(v=vs.118).aspx上定义的扩展方法提供。我一直在寻找这些方法的同步版本,但无济于事。

显然ReadAsMultipartAsync<T>的返回值是Task<T>,您可以在其上调用Wait()来强制同步。然后,您可以省略控制器中方法声明的异步。

我还没有尝试过,所以也许它有效,也许它没有 - 虽然没有明显的理由为什么它不会。

我想我应该问的问题是,为什么你想要实现同步上传,因为MS正在努力迫使开发人员停止异步路由? (并非在所有情况下这都是好的或适当的。)