【发布时间】:2023-01-04 22:43:20
【问题描述】:
我正在使用 .net core 6 WebJob SDK 版本 4.0.1:
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions"Version="4.0.1" />
我将以下行添加到我的 webjob 设置代码中:
builder.ConfigureServices(s => s.AddSingleton<MyClass>());
我有一个像这样的定时器触发器:
public class TimerFunctions
{
public void TimerTriggerTest([TimerTrigger("*/5 * * * * *")] TimerInfo myTimer,
ILogger logger,
MyClass diTest
)
{
logger.LogInformation("TimerTrigger");
}
}
在本地运行我的 WebJob 项目时,出现以下错误:
System.InvalidOperationException: Cannot bind parameter 'diTest' to type MyClass. Make sure the parameter Type is supported by the binding. If you're using binding extensions (e.g. Azure Storage, ServiceBus, Timers, etc.) make sure you've called the registration method for the extension(s) in your startup code (e.g. builder.AddAzureStorage(), builder.AddServiceBus(), builder.AddTimers(), etc.).
【问题讨论】:
-
检查调试器是否命中启动类,并确认您是否在启动代码中添加了
builder.AddTimers()。 -
我做了所有的验证。一旦我删除依赖项注入参数,它就可以正常工作。
-
关于依赖注入问题的任何更新。是否已解决或仍在寻找解决方案?
-
我认为 WebJob 的定时器触发器不允许依赖注入。奇怪,因为 Azure Functions 允许这样做,
标签: azure-webjobs azure-webjobssdk azure-webjobs-triggered