0

我在 Appinsight 请求日志中修改 userId 时遇到了很大的麻烦。如果我在代码下方创建新的 Appinsight 环境,效果会很好!但是,如果我在现有应用程序中使用以下代码,则 UserId 或其他 REQUEST 属性或 PageView 属性无法更改。我之前的一位开发人员使用向导创建了 appinsight。我不知道为什么我不能更改用户 ID 值。我该如何修改它?是否有任何配置文件用于更改修改 appinsight 上下文的属性。我的项目是 Asp.net 核心 2.2。我正在使用“Microsoft.ApplicationInsights;” 作为nuget包。

public class MyTelemetryInitializer : ITelemetryInitializer
{
    public MyTelemetryInitializer()
    {
    }

    public void Initialize(ITelemetry telemetry)
    {
        try
        {

                telemetry.Context.User.Id = "yusuf"; //=> NOT WORKING!!
                telemetry.Context.Cloud.RoleInstance = "test"; //=> NOT WORKING!!
                telemetry.Context.Properties["EventId"] = "deneme";

                ISupportProperties propTelemetry = (ISupportProperties)telemetry;

                if (propTelemetry.Properties.ContainsKey("EventId"))
                {
                    propTelemetry.Properties["EventId"] = "deneme2"; //=> Working!!!
                }


        }
        catch (Exception ex)
        {

            Trace.WriteLine(ex.Message);
        }
    }

}

启动.cs:

      public void ConfigureServices(IServiceCollection services)
    {
     ......
       .......
     services.AddSingleton<ITelemetryInitializer,MyTelemetryInitializer>(); 


        services.AddSession();
        ....
        }

程序.cs:

  public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseApplicationInsights()
            .UseStartup<Startup>()
            .Build();
}

如果我查看“Application Insights Search”,我可以看到 Userid 已更改:

在此处输入图像描述

但是当我在 AZURE 中查找 Application insgiht 时,Userid 为空。

在此处输入图像描述

4

0 回答 0