有谁知道为什么 Application Insights 在 .NET 应用程序中实现时不会收集用户代理信息,但能够收集浏览器上的统计信息?
我希望能够过滤掉针对特定用户代理字符串的请求,但看起来我无法看到具有任何可用数据/表的用户代理。
对于 SDK,这不再是自动的。您必须通过创建自定义 TelemetryInitializer 自行包含它。
public class MyCustomTelemetryInitializer: ITelemetryInitializer
{
readonly IHttpContextAccessor _httpContextAccessor;
public MyCustomTelemetryInitializer(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public void Initialize(ITelemetry telemetry)
{
if (telemetry is RequestTelemetry requestTelemetry)
{
requestTelemetry.Context.User.UserAgent = _httpContextAccessor.HttpContext.Request.Headers["User-Agent"];
}
}
}
这将从每个 HttpRequest 中读取用户代理并将其设置为请求遥测的 UserId 字段。
接下来,您需要在应用程序启动期间通过 DI 注册自定义遥测初始化程序(如果您使用的是 ASP .NET core)。
services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)