set*_*lio 2 azure azureservicebus azure-webjobssdk asp.net-core-2.0
我正在做一个项目,我想在 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);
}
}
Run Code Online (Sandbox Code Playgroud)
但我想使用 ServiceBus 的 Microsoft.Azure.WebJobs.ServiceBusTrigger 而不是存储队列 (QueueTrigger)。在文档中声明使用以下内容: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();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,问题是 b.AddServiceBus 甚至不可用(我有最新的 Web 作业版本)。因此,当我运行该项目时,出现“未找到工作职能”错误。任何想法或指示?
我确实尝试过:
public static void ProcessQueueMessage([Microsoft.Azure.WebJobs.ServiceBusTrigger("queue")] string message, ILogger logger)
{
logger.LogInformation(message);
}
Run Code Online (Sandbox Code Playgroud)
和
public static void Run([ServiceBusTrigger("queue", AccessRights.Manage, Connection = "Endpoint=bla bla")]
string myQueueItem, Int32 deliveryCount, DateTime enqueuedTimeUtc, string messageId,ILogger log)
{
}
Run Code Online (Sandbox Code Playgroud)
这里有你需要的包。
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();
}
}
Run Code Online (Sandbox Code Playgroud)
函数.cs
public static void processservicebus(
[ServiceBusTrigger("test", Connection = "ServiceBusConnection")]string myQueueItem,
ILogger log)
{
log.LogInformation(myQueueItem);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2026 次 |
| 最近记录: |