首页 > 解决方案 > Azure Functions with NCrontab 返回方法未找到消息

问题描述

我们正在尝试使用 NCrontab 包来创建一个新的 Microsoft.Azure.WebJobs.Extensions.Timers.CronSchedule 对象实例。使用以下代码:

    [FunctionName("FunctionTest")]
    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        // using NCrontab;
        var nCrontabSchedule = CrontabSchedule.Parse("5 4 * * *");

        //using Microsoft.Azure.WebJobs.Extensions.Timers;
        CronSchedule cronSchedule  = new CronSchedule(nCrontabSchedule);

        return new OkObjectResult("Hey There");
    }

所有的包都被识别了,我们没有任何构建错误。但是,当我们尝试通过 HTTP 端点执行此函数时,会返回以下错误:

System.Private.CoreLib: Exception while executing function: Function1. FunctionApp1: Method not found: 'Void Microsoft.Azure.WebJobs.Extensions.Timers.CronSchedule..ctor(NCrontab.CrontabSchedule)'

我们看到函数模拟器应用程序使用了两个不同的 DLL,涉及 NCronTab 依赖关系,因此我们认为这与此错误有关。

这是我们正在使用的单个 NuGet 包:

<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.7" />

有没有人见过同样的错误?

谢谢,雷纳托。

标签: cronazure-functions

解决方案


我们可以改用Cronos吗?

       [FunctionName("Function1")]
    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");

        CronExpression nCrontabSchedule = CronExpression.Parse("5 4 * * *");
        DateTime? next = nCrontabSchedule.GetNextOccurrence(DateTime.UtcNow);

您可能会针对不同的操作对此进行研究,例如获取范围内的事件(例如一年)或使用当地时间。能满足要求吗?


推荐阅读