2017-02-20 66 views
2

我有一个WPF应用程序,我想使用Application Insights进行监视。我想将每个用户操作分组为一个请求,并嵌入自定义事件和依赖关系调用。从我在documentation中读到的操作环境应该是正确的路要走。我写了下面的代码:不幸的是,当我检查Application Insights门户时,“我的测试事件”没有作为请求事件的相关事件出现。我试验了一下,发现如果我手动设置操作性质的事件成为相关:使用操作上下文跟踪相关事件的问题

​​

但我有一种感觉,它不应该是这样的。所以我的问题是:有人能指出我在第一个片段中做错了什么吗? TelemetryClient上是否有一些神奇的设置,使其具有文档中所述的功能?

+1

它只在ASP.Net上下文中默认生成。请参阅https://docs.microsoft.com/en-us/azure/application-insights/app-insights-api-custom-events-metrics#operation-context:您可以通过将遥测项目附加到一个常用操作ID。标准的请求跟踪模块对正在处理HTTP请求时发送的异常和其他事件执行此操作。在我的WinForm应用程序中,我也必须自己设置它。 –

+0

谢谢@PeterBons。看起来这个手动程序是必须的。我会重构代码,使其看起来更好。您可以将您的评论作为答案,我会接受它。 – lowleveldesign

回答

2

确保同一上下文中所有输出遥测具有相同操作ID,名称等的相对简单的方法是使用具有CallContext的TelemetryInitializer。

This is a really good blog post显示如何做到这一点。

+0

这实际上是一个不错的主意。谢谢! – lowleveldesign