【发布时间】:2019-04-23 12:09:30
【问题描述】:
我最近一直在使用 Azure 存储资源,尤其是我只是在玩表中的 CRUD 操作。我能够使用 .NET Framework 完成一项任务,但是,最近我的需求发生了变化,我不得不迁移到 .NET Core。我编写了相同类型的代码,它到达CreateTable() 中的try-catch 语句并无缘无故停止,我没有收到任何异常或消息,程序只是从那里退出。我一直在试图解决这个问题,到目前为止,我找到了以下解决方案,它似乎缺少了一小部分来使其工作。
此外,之前我使用 CosmosDB API 来执行此操作。不幸的是,它在 .NET Core 中不可用,因此我想出了这个解决方案。
我的想法:我也关心身份验证部分,因为我无法确定它是否成功。它通过Auth() 没有问题。如果有人能给我解决这个问题的正确方向,我将不胜感激。谢谢!
static CloudStorageAccount _storageAccount;
static void Main(string[] args)
{
Auth();
CreateTable();
}
static void Auth()
{
_storageAccount = new CloudStorageAccount(
new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(
"MyResource", "MyKey"),true);
}
async static void CreateTable()
{
CloudTableClient tableClient = _storageAccount.CreateCloudTableClient();
CloudTable peopleTable = tableClient.GetTableReference("XYZ");
try
{
await peopleTable.CreateIfNotExistsAsync();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
People customer = new People("Garry", "Johnson");
customer.Email = "xxx@yyy.zzz";
customer.PhoneNumber = "123456789";
TableOperation insertOperation = TableOperation.Insert(customer);
var result = await peopleTable.ExecuteAsync(insertOperation);
}
}
【问题讨论】:
-
您不应该在 Main 方法中等待对
CreateTable方法的调用,因为这是一个异步方法吗? -
@GauravMantri 很好,但这不是重点
-
请解释一下“这不是重点”是什么意思。
-
@GauravMantri 我的意思是这是一个很好的电话,但无论如何它无助于解决这个问题。
-
谢谢,但现在我很困惑:)。您提到您的代码/程序正在退出。那是因为您没有等待异步操作完成。您是否尝试过以下汤姆的解决方案?你还有同样的问题吗?
标签: c# azure azure-table-storage azure-blob-storage