![](/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.