C# Azure Blob存储未上载

C# Azure Blob存储未上载,c#,azure,.net-core,azure-storage,C#,Azure,.net Core,Azure Storage,我正试图将一个文本文件从一个流上传到.NETCore中的AzureBlobStorage,但它似乎失败了。我正在从数据库读取数据,并使用StreamWriter将其写入MemoryStream。在我上传到BlobStorage时,流的长度为7147,因此我知道它包含数据 以下是我上传文件的代码: public static async void UploadFromStream(字符串文件名,流,字符串fileextension=“txt”) { var storageAccount=Cloud

我正试图将一个文本文件从一个流上传到.NETCore中的AzureBlobStorage,但它似乎失败了。我正在从数据库读取数据,并使用
StreamWriter
将其写入
MemoryStream
。在我上传到BlobStorage时,
流的长度为7147,因此我知道它包含数据

以下是我上传文件的代码:

public static async void UploadFromStream(字符串文件名,流,字符串fileextension=“txt”)
{
var storageAccount=CloudStorageAccount.Parse(_connectionString);
var blobClient=storageAccount.CreateCloudBlobClient();
var container=blobClient.GetContainerReference(“日志”);
//至此,我有了一个对“logs”容器的引用,该容器已经存在
var blockBlob=container.GetBlockBlobReference($“{fileName}.{fileextension}”);
尝试
{
流位置=0;
等待blockBlob.UploadFromStreamAsync(流);
}
捕获(例外e)
{
控制台写入线(e);
投掷;
}
}
召集人:

var memoryStream=new memoryStream();
使用(var writer=newstreamwriter(memoryStream))
{
while(reader.Read())
{
作家,作家(
$“[{reader[“Timestamp”]}][{reader[“Level”].ToString().ToUpper()}]:{reader[“Message”]}{(!string.IsNullOrWhiteSpace(reader[“Exception”].ToString())?“-“+reader[“Exception”]:”);
}
Task.Run(()=>StorageService.UploadFromStream($“logfile_{DateTime.Today:s}”,memoryStream)).Wait();
}
我没有进入我的Catch块,所以我认为我没有遇到任何异常,但是当我检查我的存储时,那里什么都没有。应用程序运行正常,没有错误


我甚至尝试过使用
byte[]bytes=stream.ToArray()
和使用
blockBlob.UploadFromByteArrayAsync
,但仍然没有效果。

不要使用
异步void
(事件处理程序除外)。看

改用
公共静态异步任务UploadFromStream

您可能会遇到异常并能够跟踪错误。

为什么
任务。运行(()=>StorageService.UploadFromStream($“logfile_{DateTime.Today:s}”,memoryStream)).Wait()
如果您将方法签名更改为
public static async Task UploadFromStream(…
),您为什么不能像下面那样等待它呢

await StorageService.UploadFromStream($"logfile_{DateTime.Today:s}", memoryStream)

我刚读了你的评论,那次更改意味着我看到了一个异常!!我的连接字符串中有一个错误输入,但我没有看到错误。非常感谢你的帮助!因为我正在同步上下文中运行任务(控制台应用程序中的主方法)@MattBrewerton-如果你能将你的项目设置为使用更高版本的C#你可以使用async main(如果你还不知道的话,在我这篇文章的底部是设置它的地方)这可能对你有用know@Rob谢谢,我将Rider改为使用C#7,看起来它与async Main的预期效果一样!@Rob您可能想将其作为答案发布