Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用操作上下文跟踪相关事件时出现问题_C#_Azure_Azure Application Insights - Fatal编程技术网

C# 使用操作上下文跟踪相关事件时出现问题

C# 使用操作上下文跟踪相关事件时出现问题,c#,azure,azure-application-insights,C#,Azure,Azure Application Insights,我有一个WPF应用程序,我想使用应用程序洞察来监视它。我想将每个用户操作分组为一个请求,并嵌入自定义事件和依赖项调用。从我在操作上下文中读到的内容来看,应该是正确的方法。我编写了以下代码: 使用(var操作=telemetryClient.startoOperation( $“测试操作{Guid.NewGuid()}”)) { telemetryClient.TrackEvent(“我的测试事件”); 遥测客户端。停止操作(操作); } 不幸的是,当我检查Application Insight

我有一个WPF应用程序,我想使用应用程序洞察来监视它。我想将每个用户操作分组为一个请求,并嵌入自定义事件和依赖项调用。从我在操作上下文中读到的内容来看,应该是正确的方法。我编写了以下代码:

使用(var操作=telemetryClient.startoOperation(
$“测试操作{Guid.NewGuid()}”))
{
telemetryClient.TrackEvent(“我的测试事件”);
遥测客户端。停止操作(操作);
}
不幸的是,当我检查Application Insights门户时,“我的测试事件”没有显示为请求事件的相关事件。我做了一些实验,发现如果我手动设置操作属性,事件就会变得相关:

使用(var操作=telemetryClient.startoOperation(
$“测试操作{Guid.NewGuid()}”))
{
var ev=新事件遥测(“测试事件”);
ev.Context.Operation.Id=Operation.Telemetry.Context.Operation.Id;
ev.Context.Operation.Name=Operation.Telemetry.Context.Operation.Name;
telemetryClient.TrackEvent(ev);
遥测客户端。停止操作(操作);
}

但我有一种感觉,它不应该像这样。所以我的问题是:有人能指出我在第一段中做错了什么吗?在
遥测客户端上是否有一些神奇的设置,使其按照文档中的说明运行?

确保同一上下文中所有传出遥测具有相同的操作id、名称等的相对简单的方法是使用带有CallContext的遥测初始化器


这显示了如何操作。

它仅在ASP.Net上下文中默认生成。请参阅:您可以通过向遥测项目附加通用操作ID将其关联在一起。标准请求跟踪模块针对HTTP请求处理过程中发送的异常和其他事件执行此操作。在我的WinForm应用程序中,我也必须自己设置。谢谢@PeterBons。看来这个手动程序在这里是必须的。我将重构代码,使其看起来更好。你可以把你的评论作为回答,我会接受的。这确实是个好主意。谢谢