You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure WebJob未触发,始终提示“No job functions found”求助

解决Azure WebJob TimerTrigger无法触发的问题

我之前也碰到过一模一样的问题,折腾了好一会儿才捋清楚原因,给你列几个最值得排查的方向:

  • 检查Job类和方法的访问修饰符:必须确保你的TimerJob类和标注了[TimerTrigger]的方法都是public的。很多时候会不小心把类写成默认的internal,导致WebJobs SDK识别不到函数。示例代码应该是这样的:

    public class MyTimerJob
    {
        public void RunDailyJob([TimerTrigger("0 0 0 * * *")] TimerInfo timer)
        {
            // 你的业务逻辑代码
        }
    }
    
  • 确认Startup类的扩展注册方式是否匹配SDK版本:这是很多人踩坑的点!如果你用的是WebJobs SDK 3.x及以上版本,注册Timers扩展的方式已经从config.UseTimers()改成了builder.AddTimers(),而且Startup类需要实现IWebJobsStartup并添加对应的程序集特性。正确的写法如下:

    using Microsoft.Azure.WebJobs;
    using Microsoft.Azure.WebJobs.Hosting;
    
    [assembly: WebJobsStartup(typeof(YourWebJobNamespace.Startup))]
    namespace YourWebJobNamespace
    {
        public class Startup : IWebJobsStartup
        {
            public void Configure(IWebJobsBuilder builder)
            {
                builder.AddTimers(); // SDK 3.x+ 用这个方式注册
            }
        }
    }
    

    如果你还在老版本SDK(2.x)里用config.UseTimers(),那要确保你的Startup逻辑是在Program里通过JobHostConfiguration配置的:

    static void Main()
    {
        var config = new JobHostConfiguration();
        config.UseTimers(); // SDK 2.x 用这个方式
        var host = new JobHost(config);
        host.RunAndBlock();
    }
    
  • 检查NuGet包版本兼容性:确保Microsoft.Azure.WebJobs.Extensions.Timers包的版本和Microsoft.Azure.WebJobs核心包的版本完全匹配。版本不兼容会导致扩展无法正常加载,自然识别不到触发器函数。比如核心包是3.0.x,Timers扩展也得是3.0.x系列的。

  • 确认WebJob的运行模式:TimerTrigger需要WebJob运行在连续模式下才能持续触发。去Azure门户的WebJob设置里看看,是不是不小心选了“按需”或者“定时”模式,改成“连续”模式再试试。

  • 验证TimerTrigger的CRON表达式和参数:CRON表达式的格式要正确(秒 分 时 日 月 周),比如0 */5 * * * *表示每5分钟触发一次。另外方法的参数要使用TimerInfo类型,不要用其他不兼容的类型。

  • 查看详细日志排查隐藏问题:本地运行时看控制台输出,或者在Azure门户里查看WebJob的日志流,有没有扩展加载失败、依赖缺失之类的详细错误信息,这些往往能帮你定位到根本问题。

内容的提问来源于stack exchange,提问作者LilRazi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:08:15