【发布时间】:2019-08-08 20:56:45
【问题描述】:
我创建了两个相同的 web api 项目,一个在 VS 2012 中,另一个在 VS 2013 中,都针对 4.5 .net 框架。这些项目基于 Filip W 的视频下载教程,可在此处找到: http://www.strathweb.com/2013/01/asynchronously-streaming-video-with-asp-net-web-api/
将教程中的代码复制并粘贴到 VS 2012 项目中(使用 web api 1?)不会产生错误(在我添加正确的“使用”语句之后)。
但是,当我在 VS 2013 项目中执行相同的步骤时,我收到以下两个错误:
错误 1
以下方法或属性之间的调用不明确: 'PushStreamContent(System.Func<Stream,HttpContent,TransportContext,Task>, MediaTypeHeaderValue)' 和 'PushStreamContent(System.Action<System.IO.Stream,HttpContent,TransportContext>, MediaTypeHeaderValue)'错误 2
'void video_stream.Controllers.VideoStream.WriteToStream(System.IO.Stream, System.Net.Http.HttpContent, System.Net.TransportContext)' 返回类型错误
所以我的猜测是错误 2 是真正的问题,因为这段代码:
public async void WriteToStream(Stream outputStream, HttpContent content, TransportContext context) {...}
在 web api 1 和 2 之间不再被标识为<action>??我在这里真的很困惑,因为我的目标是相同的框架,而且我似乎无法直观地了解如何修复它。我更改 WriteToStream 签名的尝试都失败了。
是否有人知道我需要什么来让 PushStreamContent 接受 web api 2 或 VS 2013 或新 C# 中的 WriteToStream 或此代码的差异存在于何处?
【问题讨论】:
标签: c# asp.net-web-api download large-files