asp.net-mvc – Parallel Blob上传间歇性抛出404 Bad Request
发布时间:2020-12-16 04:07:55 所属栏目:asp.Net 来源:网络整理
导读:我有一个非常简单的服务, public class AzureService : IAzureService{ private readonly CloudBlobContainer _container; public AzureService(ISettings settings) { var storageAccount = CloudStorageAccount.Parse(settings.BlobConnectionString); var
我有一个非常简单的服务,
public class AzureService : IAzureService { private readonly CloudBlobContainer _container; public AzureService(ISettings settings) { var storageAccount = CloudStorageAccount.Parse(settings.BlobConnectionString); var blobClient = storageAccount.CreateCloudBlobClient(); _container = blobClient.GetContainerReference(settings.BlobContainerName); } public Task UploadBlobAsync(string fileName,Stream stream) { var blob = _container.GetBlockBlobReference(fileName); return blob.UploadFromStreamAsync(stream); } public Task DeleteBlobAsync(string fileName) { var blob = _container.GetBlockBlobReference(fileName); return blob.DeleteAsync(); } } 这个方法叫做, public Task SaveAllAsync(Dictionary<string,Stream> images) { var tasks = new List<Task>(); foreach (var image in images) { var fileName = image.Key; var stream = image.Value; var task = _azureService.UploadBlobAsync(fileName,stream); tasks.Add(task); } return Task.WhenAll(tasks); } 我的流是HttpPostedFileBase.InputStream.有时它工作,有时我得到远程服务器返回错误:(400)错误的请求..如果我放一个断点它也有效. 解决方法
我有同样的问题,我尝试上传20个图像,1次攻击,单线程工作,多线程使用await Task.WhenAll失败,“远程服务器返回错误:(400)错误请求.”
>请参阅上传[xxx]异步方法抛出的Microsoft.WindowsAzure.Storage.StorageException中的RequestInformation以获取更多详细信息. >首先,RequestInformation说了一个关于MD5问题的错误代码“Md5Mismatch”,买了我的直觉说不然因为单线程就像一个魅力,然后……我发现它… DefaultBlobClient上的DefaultRequestOptions.ParallelOperationThreadCount对象和问题sovled. private CloudBlobContainer ConnectToImageContainer() { var credentials = new StorageCredentials(AccountName,ImagesContainerKey); var account = new CloudStorageAccount(credentials,useHttps: true); var client = account.CreateCloudBlobClient(); client.DefaultRequestOptions.ParallelOperationThreadCount = 64; // max value client.DefaultRequestOptions.SingleBlobUploadThresholdInBytes = 67108864; // max value var container = client.GetContainerReference(ImagesContainerName); return container; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 浏览器关闭后的身份验证/会话cookie删除
- ASP.NET页面间传值总结
- asp.net – Visual Studio总是打开网站而不是编辑的网页
- asp.net-mvc-4 – ASP.NET Web API的自定义MVC AuthorizeAt
- asp.net-mvc – 在不显眼的验证过程中使用parseJSON的语法错
- asp.net-mvc – 编译错误“无法在Web部署项目中加载类型’S
- asp.net – 访问radGrid列中的值
- ASP.NET拒绝基于角色访问某些页面
- asp.net – 用于bower.json文件的Visual Studio 2015 RC上的
- Asp.Net / C#何时?等于A? (é等于E)
推荐文章
站长推荐
热点阅读