将文件上传到 Blob 存储错误 get_NetworkTimeout 没有实现
Posted
技术标签:
【中文标题】将文件上传到 Blob 存储错误 get_NetworkTimeout 没有实现【英文标题】:Upload file to blob storage error get_NetworkTimeout does not have an implementation 【发布时间】:2020-10-09 19:16:31 【问题描述】:我试图打电话给TransferManager.UploadAsync
,但我一直收到这个错误:
Method 'get_NetworkTimeout' in type 'Microsoft.Azure.Storage.File.FileRequestOptions' from assembly 'Microsoft.Azure.Storage.File, Version=11.1.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' does not have an implementation.
这是我在BaseBlobRepository.cs
中的方法:
public void Add(string name, System.IO.Stream fileStream, string contentType = null)
TransferManager.Configurations.ParallelOperations = 64;
SingleTransferContext context = new SingleTransferContext();
context.ProgressHandler = new Progress<TransferStatus>((progress) =>
Console.WriteLine("Bytes uploaded: 0", progress.BytesTransferred);
);
var container = GetBlobContainer(_containerName);
CloudBlockBlob blockBlob = container.GetBlockBlobReference(name);
if (contentType != null)
blockBlob.Properties.ContentType = contentType;
var task = TransferManager.UploadAsync(
fileStream, blockBlob, null, context, CancellationToken.None);
task.Wait();
【问题讨论】:
可能是因为您将null
传递为retryOptions
它可能会从 GAC 获取旧版本的 dll,因此会出现错误。因此,在您的项目中添加对Microsoft.Azure.Storage.File
的引用,错误应该得到解决。
【参考方案1】:
此问题已在最新版本中得到解决。将 Azure 包升级到 11.1.7 https://github.com/Azure/azure-storage-net-data-movement/issues/223
【讨论】:
即使使用最新版本,我也会收到此错误!【参考方案2】:就我而言,这发生在我安装 NuGet 包 Microsoft.Azure.Storage.Common
v11.1.7 但忘记安装 Microsoft.Azure.Storage.Blob
【讨论】:
以上是关于将文件上传到 Blob 存储错误 get_NetworkTimeout 没有实现的主要内容,如果未能解决你的问题,请参考以下文章
使用 python 将 csv 文件上传到 azure blob 存储