我在 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 为空。