Azure Function 中的失败绑定队列存储消息文本

Failed Binding Queue Storage Message Text in Azure Function

我已成功将一些消息发送到 Azure 队列存储。

这是我如何将消息发送到我的队列存储的代码:

private void QueueEmail(Email email)
{
    QueueClient client = GetQueueStorage("invoice-email");

    var message = JsonConvert.SerializeObject(email);

    System.Diagnostics.Debug.WriteLine(message);
    client.SendMessageAsync(message).Wait();
}

当我尝试运行 azure 函数处理队列时出现错误,执行失败。以下是错误消息。

有谁知道如何解决这个问题?

您 运行 陷入此问题的原因是因为 Function 需要一个 base64 编码的字符串,而您传递的是一个简单的字符串。

从这个link:

Encoding

Functions expect a base64 encoded string. Any adjustments to the encoding type (in order to prepare data as a base64 encoded string) need to be implemented in the calling service.

在发送消息之前,请尝试将其转换为 base64 编码的字符串。类似于:

private void QueueEmail(Email email)
{
    QueueClient client = GetQueueStorage("invoice-email");

    var message = JsonConvert.SerializeObject(email);

    System.Diagnostics.Debug.WriteLine(message);
    client.SendMessageAsync(Convert.ToBase64String(Encoding.UTF8.GetBytes(message))).Wait();
}