从ASP.NET CORE WEB API向应用程序洞察添加请求



我有一个API项目,我已经在Azure Web App中运行了一段时间。但是,我在应用程序洞察的请求表中没有看到任何请求。我是不是错过了什么?

Startup.cs:

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Authorization;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using VendorFormAPI.Authentication;
using VendorFormAPI.Extensions;
using VendorFormData.Repositories;

namespace VendorFormAPI
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }

public void ConfigureServices(IServiceCollection services)
{
services.AddApplicationInsightsTelemetry();            
var dbConnStr = Configuration["Values:DBConnection"];
services.AddTransient<VendorFormRepo, VendorFormRepo>((ctx) =>
{
var vfRepo = new VendorFormRepo(dbConnStr);
return vfRepo;
});
services.AddTransient<FilesRepo, FilesRepo>((ctx) =>
{
var strgConnStr = Configuration["Values:StorageConnection"];
var vfFilesRepo = new FilesRepo(strgConnStr, dbConnStr);
return vfFilesRepo;
});
services.AddCors(options =>
{
options.AddDefaultPolicy(
builder =>
{
builder.WithOrigins("http://localhost:3000").AllowAnyHeader().AllowAnyMethod();
});
});
services.AddControllers();
services.AddAuthentication(o => o.AddScheme("ApiKey", a => a.HandlerType = typeof(ApiKeyAuthenticationHandler)));         
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.ConfigureExceptionHandler();
app.UseHttpsRedirection();
app.UseRouting();
app.UseCors(); // second
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
}

appsettings.cs:

{
"Logging": {
"ApplicationInsights": {
"LogLevel": {
"Default": "Trace",
"System": "None",
"Microsoft": "None"
}
}
},
"ApplicationInsights": {
"Instrumentationkey": "xx-xx-4687-b1fc-xx"
},
"AllowedHosts": "*",
"Values": {      
}
}

Azure中的配置:已设置:APPINSIGHTS_INSTRUMENTATIONKEY=xxx

如果没有向Application Insights实例发送任何内容,原因有很多:

1.请检查INSTRUMENTATIONKEY是否正确。

2.有时,人们有不止一个应用程序见解。他们可以使用INSTRUMENTATIONKEY为Application_Insits_1发送数据,但在Application_Insists_2中检查结果。

3.如果没有特殊要求,请将Application Insights的软件包更新为最新版本。

4.检查您的代码,看看是否有一些用于过滤日志的过滤逻辑。

5.日志级别设置不正确,如设置为None

6.检查采样是否在azure门户或您的代码中启用。

7.检查您的应用程序见解的每日上限设置。如果达到限制,数据可能会被放弃。

这里有一些建议:

1.你最好在本地运行这个项目。例如,您可以在visual studio中运行它,并在visual studio输出窗口中检查输出。如果发送了数据,您可以在输出窗口中使用正确的INSTRUMENTATIONKEY看到它们。

2.如果部署到azure,您可以立即在Live metrics中看到数据。

最新更新