【发布时间】:2019-04-16 10:40:34
【问题描述】:
我有一个 azure QueueTrigger 函数,当我使用 Azure Storage Explorer 工具添加消息时它会处理消息。
我现在需要在 C# 中以编程方式将消息添加到队列中。我创建了一个 .Net Core 控制台应用程序,安装了 WindowsAzure.Storage NuGet 包。
在 Azure 中,我转到了我的函数存储帐户,并从访问密钥部分复制了连接字符串 for the below code:
static void Main(string[] args)
{
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("RedactedConnectionString");
// Create the queue client.
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
// Retrieve a reference to a queue.
CloudQueue queue = queueClient.GetQueueReference("test-messages");
// Create the queue if it doesn't already exist.
//queue.CreateIfNotExists();
// Create a message and add it to the queue.
CloudQueueMessage message = new CloudQueueMessage("Hello, World");
var result = queue.AddMessageAsync(message);
Console.WriteLine("");
}
此代码运行后,没有消息排队,如果我检查 result 变量,我看到的只是:
我在这里做错了什么?
【问题讨论】:
-
不一定是您的问题的原因,但是...您正在调用
Async()方法来添加您的消息,而没有await... -
我不能,因为它是一个控制台应用程序
-
@JsonStatham 你可以在 C# 7.3 ref 中使用
async Main。或者对所有异步调用执行.GetAwaiter().GetResult() -
@trailmax 你应该把你的评论作为答案。
-
@trailmax 这有效,请将您的评论变成答案!