[英]Azure Blob Storage "Method not found" with C#
在 Azure 存儲容器上應用GetBlockBlobReference()
方法時出現以下錯誤。 我可以使用Microsoft.WindowsAzure.Storage
NuGet 獲取這個容器,當我導航到這個 Nuget 時,我也可以看到所有方法,但是在編譯時找不到一些方法。
System.Private.CoreLib:執行功能時出現異常:AffluenceFunction。 GoogleAnalytics:找不到方法:'Void Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.UploadFromStream(System.IO.Stream, Microsoft.WindowsAzure.Storage.AccessCondition, Microsoft.WindowsAzure.Storage.Blob.BlobRequestOptions, Microsoft.WindowsAzure.Storage.操作上下文)'
在互聯網上,每個人都說“降級”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 存儲,並且工作正常!
謝謝
請安裝最新的 blob 存儲 nuget 包: Microsoft.Azure.Storage.Blob,版本 10.0.3。
將它安裝在類庫和 azure 函數上。
我對 .net 4.7 類庫和 azure 函數 v2 進行了測試,它可以工作。
原因是, WindowsAzure.Storage
NuGet 9.3 或以下版本僅支持 async 方法,因此函數 v2(即 .net core)沒有定義UploadFromStream()
。 但是在Microsoft.Azure.Storage.Blob, Version 10.0.3
,它確實支持 .net 核心項目的異步和非異步方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.