如何以及在何处在netcore webApp中设置TelemetryClient?

时间:2017-09-15 11:08:06

标签: azure asp.net-core asp.net-core-mvc azure-web-sites azure-application-insights

我希望使用与遥测客户端相关联的TrackTrace方法。需要创建TelemetryClient的实例才能访问此方法。

TelemetryClient可以在控制器的构造函数中初始化,但我想看看是否有更好的方法以及如何实现它?

2 个答案:

答案 0 :(得分:1)

引用Microsoft Docs

通过使用构造函数注入获取TelemetryClient的实例,并在其上调用所需的TrackXXX()方法。我们不建议在ASP.NET Core应用程序中创建新的TelemetryClient实例。

TelemetryClient的单例实例已经在 DependencyInjection容器,共享TelemetryConfiguration 其余的遥测。创建一个新的TelemetryClient实例是 仅当它需要的配置与 其余的遥测。

这样您就可以在需要的地方将其注入:

using Microsoft.ApplicationInsights;

public class HomeController : Controller
{
    private TelemetryClient telemetry;

    // Use constructor injection to get a TelemetryClient instance.
    public HomeController(TelemetryClient telemetry)
    {
        this.telemetry = telemetry;
    }

    public IActionResult Index()
    {
        // Call the required TrackXXX method.
        this.telemetry.TrackEvent("HomePageRequested");
        return View();
    }

答案 1 :(得分:0)

  

但是我想看看是否有更好的方法以及如何实施?

要创建TelemetryClient的实例,您可以使用new运算符。

TelemetryClient telemetry = new TelemetryClient();

在使用TelemetryClient之前,您需要从Visual Studio配置Application Insight。

enter image description here