已在 C# .NET6 中创建了一个多项目解决方案,其中有一个 Function 项目。 函数项目包含一个定时器触发的函数:
[FunctionName("Function1")]
public async Task Run([TimerTrigger("0 0/1 * * * *")]TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
我使用 Visual studio 2022,因此右键单击我的解决方案中的功能项目并选择发布。发布工作正常,应用程序上传到 Azure,并在 Azure 门户中创建一个已启动并运行的新函数。
在 Azure 门户上的 Application Insight 中,我可以在事务搜索中看到以下消息:
Host Status: { "id": "functionappjohantest", "state": "Running", "version": "4.30.0.22097",..................
但是,设置为每分钟一次的计时器触发器永远不会触发,因为 Application Insight 中没有新输入。
这里出了什么问题?
感谢亚当·文森特的见解。
功能代码:
using System;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;
namespace FunctionApp2
{
public class Function1
{
[FunctionName("Function1")]
public void Run([TimerTrigger("0 0/1 * * * *")]TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}
}
}
以上函数在本地执行成功。检查下面:
之后,我成功地将函数发布到门户中。
该功能在门户中也运行成功。检查下面:
输出: