Azure Хранилище очередей на локальном хосте Visual Studio: все сообщения очереди, отправленные из QueueClient, отправляются в отравленную очередь - PullRequest
0 голосов
/ 16 июня 2020

У меня есть 2 проекта в Visual Studio, веб-API и проект Azure functions с функцией триггера Azure Queue Storage. Я использую эмулятор хранилища Azure. Оба используют UseDevelopmentStorage = true для строки подключения. Клиент очереди получает 201, и я вижу сообщение в эмуляторе хранилища. Но функция триггера никогда не запускается. Я не вижу ошибок консоли. Однако, если я добавляю сообщение с помощью эмулятора хранилища, триггер срабатывает. Так что функция триггера работает, но только через эмулятор. И код QueueClient работает, я получаю 201 и вижу сообщение в эмуляторе. Я все это делаю локально, Очередь в Azure не создавала. Я не понимаю, как это может быть проблемой, но я подумал, что добавлю это.

Мой код клиента очереди:

    public async Task InsertCustomer()
    {
        var queueClient = new QueueClient(_configuration["StorageConnectionString"], "customer-items");
        var myString = "Testing";
        byte[] bytes = Encoding.Default.GetBytes(myString);
        myString = Encoding.UTF8.GetString(bytes);
        await queueClient.CreateIfNotExistsAsync();
        //just here for debugging
        var result = await queueClient.SendMessageAsync(myString);
    }

URI, который отправляет, это http://127.0.0.1: 10001 / devstoreaccount1 / customer-items

Триггер очереди:

public static class InsertCustomerQueue
{
    [FunctionName("InsertCustomer")]
    public static void Run([QueueTrigger("customer-items", Connection = "AzureWebJobsStorage")] string myQueueItem, ILogger log)
    {
        try
        {
            log.LogInformation($"C# Queue trigger function processed: {myQueueItem}");
        }
        catch (Exception ex)
        {
            log.LogInformation(ex.ToString());
        }
    }
}

}

Я использую как визуальную студию (сообщество 2019), так и эмулятор от имени администратора. Это кажется очевидным, но я не могу понять.

1 Ответ

0 голосов
/ 16 июня 2020

Всем спасибо, теперь я это вижу. Я думал, что строка должна быть UTF-8, но оказалось, что она должна быть в кодировке base64.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...