当前位置: 首页 > 知识库问答 >
问题:

在Azure上部署时,应用程序洞察中没有数据

邢财
2023-03-14

我有一个.NET Core2 MVC web应用程序,它使用了Azure上的应用程序洞察。我还配置了nlog来跟踪应用程序洞察。一切都在我的pc上运行,因为我在azure上发现了异常和跟踪,但是当我部署应用程序并在azure上使用它时,它不会在应用程序洞察上生成任何事件(我只在日志文件中发现了事件)。

因此,我尝试在控制器中创建一个TelemetryClient实例,它甚至可以在部署的实例中工作:

TelemetryClient tc = new TelemetryClient()
{
    InstrumentationKey = "11111111-2222-3333-4444-555555555555"
};
tc.Context.User.Id = Environment.MachineName;
tc.Context.Session.Id = "session_id";
tc.Context.Device.OperatingSystem = Environment.OSVersion.ToString();
tc.TrackTrace("Privacy page says hello with TelemetryClient");

以下是我的项目的片段:

{
  "ApplicationInsights": {
    "InstrumentationKey": "11111111-2222-3333-4444-555555555555"
  }
}

appsettings.staging.json

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=tcp:dom.database.windows.net,1433;Initial Catalog=dom;Persist Security Info=False;User ID=user;Password=pass;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
  },

  "AllowedHosts": "*",

  "Logging": {
    "LogLevel": {
      "Default": "Trace",
      "System": "Information",
      "Microsoft": "Information"
    }
  }
}

我在VS和Azure(分期)上定义了相同的ASPNETCORE_ENVIRONMENT值,以确保加载相同的appsettings并部署所有文件。

我以这种方式加载配置

var configuration = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .AddJsonFile($"appsettings.{environmentName}.json", optional: true)
    .AddEnvironmentVariables()              
    .Build();
public static IWebHostBuilder CreateWebHostBuilder(string[] args, IConfiguration config) =>
    WebHost.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((hostingContext) =>
        {
            //config.AddJsonFile("appsettings.json");
        })
        .UseStartup<Startup>()
        .ConfigureLogging(
            logging =>
            {
                logging.ClearProviders();
                logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
            })
        .UseApplicationInsights() // Enable Application Insights
        .UseNLog();
  <extensions>
    <add assembly="Microsoft.ApplicationInsights.NLogTarget" />
  </extensions>
  <targets>
    <target type="ApplicationInsightsTarget" name="aiTarget" />
    <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
        layout="${longdate} ${uppercase:${level}} ${message}" />
  </targets>
  <rules>
    <logger name="*" minlevel="Warn" writeTo="aiTarget" />
    <logger name="*" minlevel="Warn" writeTo="f" />
  </rules>

有什么想法,或者...是否有任何方法可以了解应用程序洞察库是如何配置的,以便找到一些有用的信息来解决问题?我尝试了远程调试,但我不知道什么检查。

共有1个答案

刘俊语
2023-03-14

基于您的描述,我认为您在azure门户->您的web应用程序->配置->应用程序设置中设置了另一个应用程序洞察键。

请检查您是否执行了此操作:

如果钥匙在那里,你需要把它取下来。或者将这一行代码addEnvironmentVariables()放在addJsonFile()之前,如下所示:

var configuration = new ConfigurationBuilder()
    .AddEnvironmentVariables() //put this before AddJsonFile()
    .AddJsonFile("appsettings.json")
    .AddJsonFile($"appsettings.{environmentName}.json", optional: true)                 
    .Build();
 类似资料:
  • 我们有一堆azure函数记录执行上下文的度量...您似乎无法使用OOTB或(至少在我所看到的情况下)来完成此操作,因为没有一个与我假设的名称为的等价物。 所以..此url(https://docs.microsoft.com/en-us/Azure/azure-functions/functions-monitoring#custom-telemetry-in-c-functions)显示了利用A

  • 有没有人有关于如何将Azure应用程序洞察集成到作为控制台应用程序构建的Azure WebJob的示例或文章的链接?

  • 如何使MDC信息显示在Azure Insights中。目前我只在跟踪日志中看到它。 null application.yaml 谢谢你的帮助

  • 在运行.NET Core3.1控制台应用程序时,我正在尝试获取应用程序的见解,以便在azure批处理作业/任务中工作。 https://docs.microsoft.com/en-us/Azure/Batch/Monitor-Application-Insights https://docs.microsoft.com/en-us/Azure/Azure-monitor/app/worker-se

  • 我在Azure上有一个现有的web应用程序,其中有一些非常有限的应用程序洞察监视(endpoint检查)。我想我会把剩下的功能加入进来,所以我按照http://azure.microsoft.com/en-us/documentation/articles/app-insights-start-monitoring-app-health-usage/的说明在我的项目中添加了遥测。一切都很顺利,我看

  • 我是Azure WebApps的新手,我需要一些帮助。 我用Linux操作系统、Java 8和Tomcat 9创建了一个Azure WebApp。我正在尝试部署在Lucee上运行的Mura应用程序。 从这个在Windows上完成的Azure WebApps上的Mura CMS示例中,我创建了一个根。包含Mura代码的war和包含WEB的WEB-INF文件夹。xml和lucee。罐子 我现在试图部署