我试图使用Azure MediaService API与一起Azure Storage API在API Service中主持Azure.
用户将视频流发送到服务HttpPost,服务将视频保存为我的存储帐户中的blob,媒体服务对视频进行编码,当视频链接准备就绪时,将其返回给用户.
但是,当我试图创建Asset一个System.NotSupportedException被抛出与消息:
抛出异常:Microsoft.Data.Services.Client.dll中的'System.NotSupportedException'抛出异常:mscorlib.dll中的'System.NotSupportedException'iisexpress.exe错误:0:Exception = System.NotSupportedException:此目标框架不支持您直接枚举数据服务查询.这是因为枚举会自动向数据服务发送同步请求.由于此框架仅支持异步操作,因此必须调用BeginExecute和EndExecute方法来获取支持枚举的查询结果.
我使用以下版本的所需依赖项:
Microsoft.Data.Services.Client - 5.6.2.0
Microsoft.WindowsAzure.MediaServices.Client - 3.0.0.8
Microsoft.WindowsAzure.Storage - 3.1.0.1
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
CloudMediaContext _context;
IAsset asset;
using (MemoryStream Ms = new MemoryStream(data.Data))
{
_context = new CloudMediaContext("accountName", "accountKey");
asset = await _context.Assets.CreateAsync("blobContainerName",
AssetCreationOptions.None,CancellationToken.None);
...
...
}
Run Code Online (Sandbox Code Playgroud)
在data.Data包含byte[]视频.CreateAsync调用时抛出异常.我试着_context.Assets.Create没有运气.
重要编辑
我创建了一个新的控制台应用程序,使用了我在API服务中使用的代码并且它已成功执行.所以问题出在API服务中.
这是我的类和方法定义
public class UploadController : ApiController
{
[HttpPost]
public …Run Code Online (Sandbox Code Playgroud) c# azure azure-storage-blobs async-await azure-media-services