服务总线触发azure webjob

本文关键字:azure webjob 总线 服务 | 更新日期: 2023-09-27 18:12:17

我创建了一个azure webjob,它将发送一个强类型消息到服务总线队列,并成功发送。

我想创建另一个webjob,它应该在servicebus队列中有消息时触发。请找到下面的代码,我正在尝试。由于某种原因,虽然在servicebus队列中有消息,但当我在本地运行webjob时,webjob没有被触发并得到一个错误。

错误:

System.InvalidOperationException
{"Missing value for trigger parameter 'blobIinfo'."}
代码:

public static void Main()
{
    var config = new JobHostConfiguration
    {
        NameResolver = new QueueNameResolver(),
        ServiceBusConnectionString = ApplicationSettings.ServiceBusConnectionString
    };
    var host = new JobHost(config);
    host.Call(typeof(BankLineFileProcessorWebJob).GetMethod("ProcessQueueMessage"));
}

[NoAutomaticTrigger]
public static void ProcessQueueMessage(
    TextWriter log,
    [ServiceBusTrigger("testsftppollingqueue")] SftpQueueMessage blobIinfo
    )
{
    while (true)
    {
        log.WriteLine("Queue message refers to blob: " + blobIinfo.BlobUri);
        Thread.Sleep(TimeSpan.FromMinutes(PollingInterval));
    }
}
谁能帮我解决这个问题?

谢谢

服务总线触发azure webjob

你必须使用

host.RunAndBlock();
不是

host.Call(typeof(BankLineFileProcessorWebJob).GetMethod("ProcessQueueMessage"));

另外,请去掉NoAutomaticTrigger属性