C# Application Insights中的Azure函数TimerTrigger结果代码总是成功的

C# Application Insights中的Azure函数TimerTrigger结果代码总是成功的,c#,azure,azure-functions,azure-application-insights,C#,Azure,Azure Functions,Azure Application Insights,我有一个简单的C#Azure函数,它使用一个计时器触发器,每X分钟运行一次。没有输出绑定 在application insights中,函数始终成功,结果代码为0: [尽管多次调用TraceWriter的.Error()。] 我希望在application insights中获得正确的最终状态,但我不知道如何做到这一点。文档中从未提到过这一点:-/ 有人能教我怎么用C语言吗 我试图设置Environment.ExiCode,但结果相同。 我还尝试将返回类型更改为int,但随后不再调用该函数。我

我有一个简单的C#Azure函数,它使用一个计时器触发器,每X分钟运行一次。没有输出绑定

在application insights中,函数始终成功,结果代码为0:

[尽管多次调用TraceWriter的.Error()。]

我希望在application insights中获得正确的最终状态,但我不知道如何做到这一点。文档中从未提到过这一点:-/ 有人能教我怎么用C语言吗

我试图设置
Environment.ExiCode
,但结果相同。 我还尝试将返回类型更改为
int
,但随后不再调用该函数。我想是因为它是azure函数本身的一种实现方法

以下是我的功能:

[FunctionName("SendToOfflineArchive")]
public static void Run([TimerTrigger("%TimerInterval%")]TimerInfo myTimer, TraceWriter log)
{
    log.Info($"C# Timer trigger function executed at: {DateTime.Now}");

    // do stuff

    int nbErrors = 7;
    //return nbErrors;
}

如果结果代码不是0,那就太好了。。。与错误数(一个整数)类似。

如果Azure函数抛出异常,它将被视为失败(AF和AI之间存在嵌入式集成,它将成功执行的函数视为“成功”)。如果启用了日志转发功能,将错误记录为跟踪应该会在Application Insights中生成相应的跟踪消息。

您好,Thibault,您是如何使用Visual studio或直接在门户上创建此功能的?我认为TraceWriter是老签名。看看这个,这是一个7个月的“老”项目,使用功能1.x,运行良好。但是,版本2.x也存在同样的问题。无论如何,记录器不是问题!好主意!它成功了:是的,日志转发被启用(实际上这是在azure函数中具有执行历史记录的唯一方法),我在调用详细信息中看到了对.Error()的调用。我的观点是关于全局结果代码状态(参见屏幕截图)。如何设置结果代码?我想,在Azure Functions v2中,配置遥测初始值设定项(接收所有通过的遥测)并根据您遇到的异常修改RequestTelemetry的响应代码。类似于
if(遥测是请求遥测请求){request.ResponseCode=…}