gpt4 book ai didi

c# - 如何从 requestTelemetry 获取 session ID?

转载 作者:行者123 更新时间:2023-12-03 04:16:46 25 4
gpt4 key购买 nike

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MyLibrary.Web.Context;
using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.Extensibility;


namespace ACME.Foundation.Analytics
{
public class ApplicationInsightsSessionInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
var requestTelemetry = telemetry as RequestTelemetry;
if (requestTelemetry == null) return;

if (HttpContext.Current.Session.SessionID != null)
{
telemetry.Context.Session.Id = HttpContext.Current.Session.SessionID;
}
}
}
}

在ApplicationInsights.config中

<Add Type="ACME.Foundation.Analytics.ApplicationInsightsSessionInitializer, ACME.Foundation.Analytics" />
<Add Type="Microsoft.ApplicationInsights.StatusMonitor.SdkSourceTelemetryInitializer, Microsoft.AI.StatusMonitor" />

如何从 requestTelemetry 获取 session ID?我的分析遥测文件夹中有此片段。 itemType 请求似乎没有 session ID。每次出现请求时,session都是null。

我想将其与正确的 sessionID 相匹配,但无法在应用洞察 sessionID 中覆盖它

我正在遵循这里的示例:https://learn.microsoft.com/en-us/azure/application-insights/app-insights-usage-send-user-context

我的解决方案基于位于页面中间的演示,但似乎不适合我。

如有任何帮助,我们将不胜感激!

最佳答案

根据 @Dmitry 提到的,该示例是不正确的。

还有一种方法可以设置sessionid,可以引用这个link :

private static TelemetryClient GetTelemetryClient()
{
var telemetryClient = new TelemetryClient();
telemetryClient.InstrumentationKey = "<your actual insight instrumentkey>";
telemetryClient.Context.Session.Id = "124556";
//update 1-Custom properties- Start
telemetry.Context.Properties["tags"] = "PROD";
telemetry.Context.Properties["userCorelateId"]="1234";
//update 1-Custom properties- Ends
return telemetryClient;
}

关于c# - 如何从 requestTelemetry 获取 session ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52301830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com