缺少 .NET Core 2.0 和 Azure Web Jobs 3.0 的 Azure 服务总线触发器配置
Azure Service Bus trigger configuration for .NET Core 2.0 and Azure Web Jobs 3.0 is missing
我正在做一个项目,我想在 Web 作业中实现 Service Buss 触发器。我已按照此处的说明进行操作:
https://docs.microsoft.com/en-us/azure/app-service/webjobs-sdk-get-started.
public class Functions
{
public static void ProcessQueueMessage([QueueTrigger("queue")] string message, ILogger logger)
{
logger.LogInformation(message);
}
}
但是我想使用 ServiceBus 来代替存储队列 (QueueTrigger) Microsoft.Azure.WebJobs.ServiceBusTrigger。在文档中说明使用以下内容:
https://docs.microsoft.com/en-us/azure/app-service/webjobs-sdk-how-to#service-bus-trigger-configuration-version-3x
static void Main()
{
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddServiceBus(sbOptions =>
{
sbOptions.MessageHandlerOptions.AutoComplete = true;
sbOptions.MessageHandlerOptions.MaxConcurrentCalls = 16;
});
});
var host = builder.Build();
using (host)
{
host.Run();
}
}
但是,问题是 b.AddServiceBus 甚至不可用(我有最新的 Web Jobs 版本)。所以,当我 运行 项目时,我得到 "No job functions found" 错误。有什么想法或指示吗?
我试过了:
public static void ProcessQueueMessage([Microsoft.Azure.WebJobs.ServiceBusTrigger("queue")] string message, ILogger logger)
{
logger.LogInformation(message);
}
和
public static void Run([ServiceBusTrigger("queue", AccessRights.Manage, Connection = "Endpoint=bla bla")]
string myQueueItem, Int32 deliveryCount, DateTime enqueuedTimeUtc, string messageId,ILogger log)
{
}
这是您需要的软件包。
- Microsoft.Azure.WebJobs(>= 3.0.10)
- Microsoft.Azure.WebJobs.扩展
- Microsoft.Azure.WebJobs.Extensions.ServiceBus
- Microsoft.Azure.WebJobs.ServiceBus
Microsoft.Azure.WebJobs.Extensions.ServiceBus
这个包是用来让你使用 b.AddServiceBus()
方法的, Microsoft.Azure.WebJobs.ServiceBus
是用来创建 ServiceBusTrigger
.
下面是我的代码,你可以测试一下
public static void Main(string[] args)
{
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddServiceBus();
});
builder.ConfigureLogging((context, b) =>
{
b.AddConsole();
});
var host = builder.Build();
using (host)
{
host.Run();
}
}
Functions.cs
public static void processservicebus(
[ServiceBusTrigger("test", Connection = "ServiceBusConnection")]string myQueueItem,
ILogger log)
{
log.LogInformation(myQueueItem);
}
我正在做一个项目,我想在 Web 作业中实现 Service Buss 触发器。我已按照此处的说明进行操作: https://docs.microsoft.com/en-us/azure/app-service/webjobs-sdk-get-started.
public class Functions
{
public static void ProcessQueueMessage([QueueTrigger("queue")] string message, ILogger logger)
{
logger.LogInformation(message);
}
}
但是我想使用 ServiceBus 来代替存储队列 (QueueTrigger) Microsoft.Azure.WebJobs.ServiceBusTrigger。在文档中说明使用以下内容: https://docs.microsoft.com/en-us/azure/app-service/webjobs-sdk-how-to#service-bus-trigger-configuration-version-3x
static void Main()
{
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddServiceBus(sbOptions =>
{
sbOptions.MessageHandlerOptions.AutoComplete = true;
sbOptions.MessageHandlerOptions.MaxConcurrentCalls = 16;
});
});
var host = builder.Build();
using (host)
{
host.Run();
}
}
但是,问题是 b.AddServiceBus 甚至不可用(我有最新的 Web Jobs 版本)。所以,当我 运行 项目时,我得到 "No job functions found" 错误。有什么想法或指示吗?
我试过了:
public static void ProcessQueueMessage([Microsoft.Azure.WebJobs.ServiceBusTrigger("queue")] string message, ILogger logger)
{
logger.LogInformation(message);
}
和
public static void Run([ServiceBusTrigger("queue", AccessRights.Manage, Connection = "Endpoint=bla bla")]
string myQueueItem, Int32 deliveryCount, DateTime enqueuedTimeUtc, string messageId,ILogger log)
{
}
这是您需要的软件包。
- Microsoft.Azure.WebJobs(>= 3.0.10)
- Microsoft.Azure.WebJobs.扩展
- Microsoft.Azure.WebJobs.Extensions.ServiceBus
- Microsoft.Azure.WebJobs.ServiceBus
Microsoft.Azure.WebJobs.Extensions.ServiceBus
这个包是用来让你使用 b.AddServiceBus()
方法的, Microsoft.Azure.WebJobs.ServiceBus
是用来创建 ServiceBusTrigger
.
下面是我的代码,你可以测试一下
public static void Main(string[] args)
{
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddServiceBus();
});
builder.ConfigureLogging((context, b) =>
{
b.AddConsole();
});
var host = builder.Build();
using (host)
{
host.Run();
}
}
Functions.cs
public static void processservicebus(
[ServiceBusTrigger("test", Connection = "ServiceBusConnection")]string myQueueItem,
ILogger log)
{
log.LogInformation(myQueueItem);
}