![](/img/trans.png)
[英]How to call http triggered azure function from timer triggered azure function
[英]Timer triggered Azure function Activity.Current is null
设想
我按照本教程在net core 3.1
中创建了azure function v3
来监控我的 web 应用程序。 你使用 Visual Studio 而不是在门户中开发它。
问题
不幸的是,我收到了System.NullReferenceException: Object reference not set to an instance of an object.System.Diagnostics.Activity.Current.get returned null.
在行:
availability.Context.Operation.ParentId = Activity.Current.SpanId.ToString();
如何解决?
嗯...我认为教程可能在代码上有一些错误,我们可以注释发生错误的两行。
这个文档说:
活动应通过调用构造函数创建,根据需要进行配置,然后使用 Start 方法启动,该方法维护活动的父子关系并设置 Activity.Current。
这就是为什么availability.Context.Operation.ParentId = Activity.Current.SpanId.ToString();
突发错误。 并关注这一行代码,这一行有意义吗? 所以在我的测试中,我对这一行和它后面的行进行了注释,并且代码执行得很好。
我按照相同的教程使用 Azure Function 设置了可用性测试。
首先,删除这两行将解决错误,function 将起作用
availability.Context.Operation.ParentId = Activity.Current.SpanId.ToString();
availability.Context.Operation.Id = Activity.Current.RootId;
但是这样的话,with availability.Id = Activity.Current.SpanId.ToString();
发送到 Application Insight 日志的 availability.Id 将始终为0000000000000
。 如果您不关心为每个可用性测试提供一个唯一的 ID,那很好。
如果需要,您可以在availability.Message
中添加自定义 ID 或标识符,格式为 json。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.