将文件上传到 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 没有实现的主要内容,如果未能解决你的问题,请参考以下文章

将图像上传到 Azure Blob 存储

使用 python 将 csv 文件上传到 azure blob 存储

Azure Blob 存储上传错误:(403)禁止

将 5gb 文件从 Web 浏览器上传到 Blob 存储

从 SFTP 服务器将文件上传到 Azure 存储 Blob

通过 Azure Front Door 将文件上传到 Blob 存储