gpt4 book ai didi

c# - 具有无效检测 key 的 Application Insights - 如何在未抛出错误时进行处理

转载 作者:太空宇宙 更新时间:2023-11-03 15:13:14 25 4
gpt4 key购买 nike

如果在将消息跟踪到 Application Insights 时使用了无效的检测 key ,是否可以捕获错误?

我正在以编程方式指定如下所示的检测 key ,但没有引发异常。
我正在尝试构建一个 Logging WebApi,它将根据消息是否成功记录到 Application Insights 来返回成功或失败?

TelemetryConfiguration config = TelemetryConfiguration.CreateDefault();
config.InstrumentationKey = "ABC";
client.TrackTrace("Test"),SeverityLevel.Information);

最佳答案

您应该实现您自己的 channel 来实现 ITelemetryChannel ,并根据需要处理异常。

这是一个简单的例子:

public class SynchronousTelemetryChannel : ITelemetryChannel
{
private const string ContentType = "application/x-json-stream";
private readonly List<ITelemetry> _items;
private object _lock = new object();
public bool? DeveloperMode { get; set; }
public string EndpointAddress { get; set; }

public SynchronousTelemetryChannel()
{
_items = new List<ITelemetry>();
EndpointAddress = "https://dc.services.visualstudio.com/v2/track";
}

public void Send(ITelemetry item)
{
lock (_lock)
{
_items.Add(item);
}
}

public void Flush()
{
lock (_lock)
{
try
{
byte[] data = JsonSerializer.Serialize(_items);
new Transmission(new Uri(EndpointAddress), data, ContentType, JsonSerializer.CompressionType).SendAsync().Wait();
_items.Clear();
}
catch (Exception e)
{
// Do whatever you want.
}
}
}

public void Dispose()
{
GC.SuppressFinalize(this);
}
}

然后,通过代码或 configuration file 使用您的 channel 初始化配置:

        TelemetryConfiguration.Active.TelemetryChannel = new SynchronousTelemetryChannel();

关于c# - 具有无效检测 key 的 Application Insights - 如何在未抛出错误时进行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40217337/

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