Я пытаюсь найти то, что я делаю неправильно в отношении метода QueueTrigger Azure WebJobs, который должен запускаться из очереди хранения Azure.Azure WebJobs QueueTrigger не запускается
Я прочитал несколько документов (как в статьях в блогах/в статьях msdn). Но я все еще не понимаю.
Главный вопрос/непонятый аспект:
Что должно быть именем строки соединения для хранения Azure консоли приложения App.config или Windows, конфигурация Azure (портал). Пока у меня есть следующее имя в обоих местах.
- AzureJobsStorage
- AzureWebJobsStorage
- AzureJobsRuntime
- 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);
Этот код выполняется, и очереди добавляются к моей учетной записи хранения. Но они не получили «dequeue» или не читали из WebJobs.
Так рад, что вы опубликовали этот ответ. Не могу поверить шаблонам кода в студии по умолчанию класс для частного. – JasonCoder