Нет данных в приложениях при развертывании в Azure - PullRequest
0 голосов
/ 12 мая 2019

У меня есть веб-приложение MVC .net core 2, которое использует информацию о приложениях в Azure.Я также настроил nlog для отслеживания с пониманием приложения. Все работает на моем компьютере, так как я обнаружил исключения и трассировку на 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");

Вотфрагменты моего проекта:

appsettings.json

{
  "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"
    }
  }
}

Я определил одно и то же значение ASPNETCORE_ENVIRONMENT на моем VS и в Azure (Постановка), чтобы быть уверенным, чтобы загрузить те же самые настройки приложений и развернуть все файлы.

Я загружаю конфигурацию таким образом

var configuration = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .AddJsonFile($"appsettings.{environmentName}.json", optional: true)
    .AddEnvironmentVariables()              
    .Build();

CreateWebHostBuilder это

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();

nlog.config содержит

  <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>

Мне кажется, что что-то не так в конфигурации или в InstrumentationKey, но я не знаю, как это проверить.

Любая идея или... есть ли способ узнатьКак настроить библиотеку аналитики приложения, чтобы найти полезную информацию для решения проблемы?Я попытался с удаленной отладкой, но я не знаю, что проверять.

1 Ответ

2 голосов
/ 13 мая 2019

Исходя из вашего описания, я думаю, что вы установили другой ключ понимания приложения на портале Azure -> ваше веб-приложение -> конфигурация-> настройки приложения.

Пожалуйста, проверьте, сделали ли вы это или нет:

enter image description here

Если ключ есть, его нужно удалить. Или поместите эту строку кода AddEnvironmentVariables() перед AddJsonFile(), как показано ниже:

var configuration = new ConfigurationBuilder()
    .AddEnvironmentVariables() //put this before AddJsonFile()
    .AddJsonFile("appsettings.json")
    .AddJsonFile($"appsettings.{environmentName}.json", optional: true)                 
    .Build();

Пожалуйста, дайте мне знать, если у вас есть другие проблемы.

...