У меня есть веб-приложение 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, но я не знаю, как это проверить.
Любая идея или... есть ли способ узнатьКак настроить библиотеку аналитики приложения, чтобы найти полезную информацию для решения проблемы?Я попытался с удаленной отладкой, но я не знаю, что проверять.