gpt4 book ai didi

c# - 如何在使用 OWIN 的 WebApi 项目上启用 Application Insights 服务器遥测?

转载 作者:IT王子 更新时间:2023-10-29 04:53:35 27 4
gpt4 key购买 nike

我们在生产中的几个项目中遇到了很多问题(读取响应时间长),并且想确切地了解服务器上发生了什么。然后,我按照 this article 继续将 Application Insights 添加到我们所有的项目中。 .问题是我们的两个 WebAPI 项目都没有将服务器数据发送到 Azure 门户,而所有其他项目 (MVC 5) 都是。

这是我在 Azure 上访问相应的 Application Insights Blade 时显示的内容:

enter image description here

我尝试在我们的 Azure VM 的 Application Insights 状态监视器中禁用和重新启用数据收集,在向 API 发出请求时重启 IIS 几次,但无济于事。当我在 MVC 项目上启用它时,当我在站点上打开页面时,几乎可以立即在 Azure 门户上看到数据。

当我看到这些特定项目的数据没有从我们的 Azure VM 发送时,我尝试在我们的开发环境中设置相同的集合,该集合托管在我们自己的基础设施中,但完全相同的情况再次发生,裁定排除这与托管在 Azure VM 中的项目相关的可能性。

我不确定是什么阻止了这些项目将数据发送到 Azure,但通过查看工作项目与非工作项目,我认为这可能与我们的 WebAPI 项目使用新的 OWIN 管道,而 MVC 管道是标准的 MVC 项目。我检查了两种项目类型的 web.config 文件和 bin 文件夹,它们似乎被 Insights Monitor 正确修改了(我可以看到相同的新 dll 添加到 bin 文件夹,相同的 http 模块添加到 web。配置)。

考虑到这一点,我如何使用 Application Insights 为依赖 OWIN/Katana 管道的 WebAPI 项目启用服务器端遥测?在这种情况下,我该怎么做才能找出导致项目不向 Azure 发送数据的确切原因?

最佳答案

这是一个老问题,但它仍然在搜索“web api application insights owin”的前 3 个结果中。经过大量搜索并没有太多不需要我们编写自己的中间件或明确检测所有内容的答案。我们遇到了一个使事情变得 super 简单的扩展包:

这是 Github Repository对于它和相关的 NuGet Package

对于那些懒得看链接的人,需要添加的是:

public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseApplicationInsights();

// rest of the config here...
}
}

并将其添加到您的 ApplicationInsights.Config

<TelemetryInitializers>
<!-- other initializers.. -->
<Add Type="ApplicationInsights.OwinExtensions.OperationIdTelemetryInitializer, ApplicationInsights.OwinExtensions"/>
</TelemetryInitializers>

关于c# - 如何在使用 OWIN 的 WebApi 项目上启用 Application Insights 服务器遥测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29471811/

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