在https://docs.microsoft.com/en-us/azure/application-insights/app-insights-usage-send-user-context之后,我认为对用户进行跨模式跟踪很容易。但是,我发现完全相反。
我创建了遥测初始化程序(该文件的硬核中有错误):
public void Initialize(ITelemetry telemetry)
{
if (HttpContext.Current?.Session == null)
return;
if (HttpContext.Current.Session["UserId"] == null)
{
HttpContext.Current.Session["UserId"] = Guid.NewGuid().ToString();
}
telemetry.Context.User.Id = (string)HttpContext.Current.Session["UserId"];
telemetry.Context.Session.Id = HttpContext.Current.Session.SessionID;
var authUser = _sessionManager.GetAuthenticatedUser<UserDetails>();
if (authUser != null)
{
telemetry.Context.User.AuthenticatedUserId = authUser.UserId;
}
}
然后我去了并将其添加到App Insights
TelemetryConfiguration.Active.TelemetryInitializers.Add(new UserTrackingTelemetryInitializer());
然后,我在自己的网站上玩,期望这些东西开始出现。它没。我继续获得user_Id和session_Id的随机字符串(诸如NVhLF之类的东西)。因此,我认为,好吧,也许是在更新这些值之前正在记录日志?我先插入了初始化程序:
TelemetryConfiguration.Active.TelemetryInitializers.Insert(0, new UserTrackingTelemetryInitializer());
同一件事。因此,我开始看我通常不看的模式。没有。所以我找到了痕迹,然后找到了。最后,这里是我的数据去向。但是其他模式没有更新的值,那么这有什么用?当跟踪显示user_Id和session_Id的期望值时,其他跟踪继续显示垃圾。我在做错什么吗?