在为基于Owin的项目添加见解时遇到问题

时间:2018-10-08 00:31:17

标签: c# owin azure-application-insights

我一直在尝试将Azure应用程序见解添加到一些项目中。使用.net核心应用程序,整个体验是无缝的。但是,当我尝试更新Cloud角色名称属性时,对于基于OWIN的应用程序,我找不到太多的地方。我希望 Insights应用程序映射中的气泡名称显示我在此属性中设置的名称(例如,我的API),但是它一直求助于我在Azure中为此资源拥有的资源名称(我的-azure-api)。在搜寻了大多数在线资源之后,我能够执行以下不起作用的操作。

using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.Extensibility;

namespace MyApp.Insights
{
    public class RoleNameInitializer : ITelemetryInitializer
    {
        public void Initialize(ITelemetry telemetry)
        {
            // set role name correctly here.
            telemetry.Context.Cloud.RoleName = "My API";            
        }
    }
}

还在applicationinsights.config中添加了以下内容

<Add Type="MyApp.Insights.RoleNameInitializer, MyApp"/>

也将以下内容添加到启动类中(出于预防目的)

using IntegratedTeleHealthPlatformApi.Insights;
using Microsoft.ApplicationInsights.Extensibility;
using Owin;

namespace MyApp
{
    public partial class Startup
    {

        public void Configuration(IAppBuilder app)
            {

            TelemetryConfiguration
                .Active
                .TelemetryInitializers
                .Add(new RoleNameInitializer());



                ConfigureAuth(app);
                ApplyDatabaseMigrations();       

            }
    }

}

1 个答案:

答案 0 :(得分:0)

我只是设置了一个基于owin的简单asp.net项目(asp.net Web应用程序,然后在nuget中安装Microsoft.Owin.Host.SystemWeb)。

设置完成后,在Visual Studio中->项目->添加Application Insights遥测: enter image description here

我的自定义TelemetryInitializer如下: enter image description here

然后将初始化程序添加到applicationinsights.config中: enter image description here

执行后,角色名称就是我在初始化程序中设置的角色名称: enter image description here

如果可以,请尝试一下。为了确保您的RoleNameInitializer被调用,您可以在此处设置断点以查看是否被调用。