Я пытаюсь выяснить, что я делаю неправильно в отношении метода Azure WebJobs QueueTrigger, который должен запускаться из очереди хранилища Azure.
Я прочитал пару документов (например, сообщения в блогах / статьи msdn). Но мне все еще непонятно.
Главный вопрос / непонятый аспект:
Каким должно быть имя строки подключения для приложения консоли хранилища Azure App.config или конфигурации Windows Azure (портал). Пока что в обоих местах установлены следующие имена.
- AzureJobsХранилище
- AzureWebJobsStorage
- AzureВакансии
- AzureJobsDashboard
- AzureJobsData
Вот код моего консольного приложения WebJobs.
static void Main()
{
JobHost host = new JobHost();
host.RunAndBlock();
}
public static void CreateLeague([QueueTrigger("temp")] string msg)
{
var task = JsonConvert.DeserializeObject<QueueTask>(msg);
if (task.TaskType == QueueTask.TaskTypes.Pdf)
RenderPdf(task.Id);
}
Это консольное приложение постоянно работает на моем веб-сайте Azure.
Я могу получить доступ к его странице «отладки», где я могу переключить вывод, и я вижу, что он запущен / работает.
Мой код для добавления очереди (из моего приложения ASP.NET MVC):
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference("temp");
queue.CreateIfNotExists();
Common.QueueTask task = new Common.QueueTask();
task.TaskType = Common.QueueTask.TaskTypes.Pdf;
task.Id = p.Id;
CloudQueueMessage msg = new CloudQueueMessage(JsonConvert.SerializeObject(task) );
queue.AddMessage(msg);
Этот код выполняется, и очередь добавляется в мою учетную запись хранения. Но они не получали "удаление из очереди" или чтение из веб-заданий.