Ich versuche herauszufinden, was ich falsch in Bezug auf eine Azure WebJobs QueueTrigger-Methode mache, die von einer Azure-Speicherwarteschlange ausgelöst werden soll.Azure WebJobs QueueTrigger löst nicht aus
Ich habe ein paar Dokumente gelesen (wie in Blogposts/msdn Artikel). Aber ich bin immer noch nicht klar.
Haupt Frage/mißverstanden Aspekt:
Was für Azure Storage Console App App.config oder Windows Azure-Konfiguration (Portal) der Name der Verbindungszeichenfolge sein sollte. Bisher habe ich an beiden Stellen den folgenden Namen gesetzt.
- AzureJobsStorage
- AzureWebJobsStorage
- AzureJobsRuntime
- AzureJobsDashboard
- AzureJobsData
Hier ist meine WebJobs Konsole App-Code.
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);
}
Diese Konsolen App läuft kontinuierlich auf meiner Azure-Website.
Ich kann auf seine "Debug" -Seite, wo ich die Ausgabe wechseln kann und ich sehe, es ist gestartet/läuft.
Mein Code Warteschlange hinzufügen (aus meinem ASP.NET MVC-app):
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);
Dieser Code ausgeführt wird, und Warteschlange zu meinem Speicher-Konto hinzugefügt. Aber sie wurden nicht von den WebJobs "enthoben" oder gelesen.
So froh, dass Sie diese Antwort gepostet haben. Ich kann nicht glauben, dass die Code-Vorlagen im Studio die Klasse auf privat setzen. – JasonCoder