【问题标题】:Azure Blob Storage "Method not found" with C#使用 C# 的 Azure Blob 存储“找不到方法”
【发布时间】:2019-12-11 07:09:23
【问题描述】:

当我在天蓝色存储容器上应用方法 GetBlockBlobReference() 时出现以下错误。我可以使用Microsoft.WindowsAzure.Storage NuGet 获取这个容器,当我导航到这个 Nuget 时我也可以看到所有方法,但是在编译时找不到一些方法。

System.Private.CoreLib:执行函数时出现异常: 富裕功能。 GoogleAnalytics:找不到方法:'无效 Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.UploadFromStream(System.IO.Stream, Microsoft.WindowsAzure.Storage.AccessCondition, Microsoft.WindowsAzure.Storage.Blob.BlobRequestOptions, Microsoft.WindowsAzure.Storage.OperationContext)'

在互联网上,每个人都说“降级”Azure Storage Nuget 版本,但无法正常工作。我尝试过版本 5、6、7 甚至 9。我使用 .NET Framework 4.7 作为类库,由版本 2 上的函数项目调用。

一些代码(我可以再次获取容器):

    public void UploadFile( CloudBlobContainer container )
    {
        var filePathOnServer = Path.Combine("C:/temp/test/c.csv");

        using (var fileStream = File.OpenRead(filePathOnServer))
        {
            var filename = "c.csv"; // Trim fully pathed filename to just the filename
            var blockBlob = container.GetBlockBlobReference(filename);

            blockBlob.UploadFromStream(fileStream);
        }
    }

我们在其他项目(其他版本的 .NET)上以相同的方式使用 Azure Blob 存储,它工作正常!

谢谢

【问题讨论】:

  • 如果答案对你有用,请帮忙标记为答案,谢谢。

标签: c# visual-studio azure azure-storage


【解决方案1】:

请安装最新的 blob 存储 nuget 包:Microsoft.Azure.Storage.Blob, Version 10.0.3.

将它安装在类库和天蓝色函数上。

我对 .net 4.7 类库和 azure function v2 进行了测试,它可以工作。

原因是,WindowsAzure.Storage NuGet 9.3 或更低版本对于.net core 只支持异步方法,所以对于函数v2(即.net core)没有定义UploadFromStream()。但在Microsoft.Azure.Storage.Blob, Version 10.0.3 中,它确实支持.net core 项目的异步和非异步方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 2013-01-21
    • 2022-08-24
    • 2017-04-18
    • 2019-08-26
    相关资源
    最近更新 更多