C# Azure WebJobs队列触发器未触发
我正在试图找出我在Azure WebJobs QueueTrigger方法方面做错了什么,该方法应该从Azure存储队列触发 我已经阅读了一些文档(如博客文章/msdn文章)。但我还是不清楚 主要问题/误解方面: Azure存储控制台应用程序app.config或Windows Azure配置(门户)的连接字符串的名称应该是什么。到目前为止,我在两个地方都设置了以下名称。C# Azure WebJobs队列触发器未触发,c#,azure,azure-storage,azure-webjobs,azure-queues,C#,Azure,Azure Storage,Azure Webjobs,Azure Queues,我正在试图找出我在Azure WebJobs QueueTrigger方法方面做错了什么,该方法应该从Azure存储队列触发 我已经阅读了一些文档(如博客文章/msdn文章)。但我还是不清楚 主要问题/误解方面: Azure存储控制台应用程序app.config或Windows Azure配置(门户)的连接字符串的名称应该是什么。到目前为止,我在两个地方都设置了以下名称。 AzureJobstorage AzureWebJobs存储 AzureJobsRuntime AzureJobsDash
- AzureJobstorage
- AzureWebJobs存储
- AzureJobsRuntime
- AzureJobsDashboard
- AzureJobsData
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);
}
执行此代码,并将队列添加到我的存储帐户。但是他们没有“出列”,也没有从WebJobs中读取内容。嗯,WebJobs类必须是公共的
using Microsoft.Azure.WebJobs;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using Newtonsoft.Json;
using Proceed.Common;
using System;
using System.Configuration;
using System.IO;
public class WebJobsTask {
public 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);
}
}
使用Microsoft.Azure.WebJobs;
使用Microsoft.WindowsAzure.Storage;
使用Microsoft.WindowsAzure.Storage.Blob;
使用Newtonsoft.Json;
使用procedure.Common;
使用制度;
使用系统配置;
使用System.IO;
公共类WebJobsTask{
公共静态void Main()
{
JobHost主机=新的JobHost();
host.RunAndBlock();
}
public static void CreateLeague([QueueTrigger(“temp”)]string msg)
{
var task=JsonConvert.DeserializeObject(msg);
if(task.TaskType==QueueTask.TaskTypes.Pdf)
RenderPdf(task.Id);
}
}
还找到了一种快速浏览我的队列的方法:
JobHostConfiguration.Queues.MaxPollingInterval
属性配置最大回退azurewebjobstorage
和AzureWebJobsDashboard
这是一个获取更多资源的好地方:在我的例子中,我假设QueueTrigger指的是服务总线队列,而不是Azure队列,实际上我需要使用
ServiceBusTrigger
,我也遇到了同样的问题。还看到了在某些地方提到的ServiceBustigger,但在我添加Microsoft.Azure.WebJobs.ServiceBus nuget包之前,该属性从未解析!谈论文档中的不清晰。事实上,有点混乱。很高兴你发布了这个答案。不敢相信studio中的代码模板会将类默认为private。
using Microsoft.Azure.WebJobs;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using Newtonsoft.Json;
using Proceed.Common;
using System;
using System.Configuration;
using System.IO;
public class WebJobsTask {
public 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);
}
}