You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Blazor中实现Logger与ApplicationInsights的对接

解决Server-Side Blazor应用无法向Application Insights写入数据的问题

1. 安装必要的NuGet包

确保项目已安装Microsoft.ApplicationInsights.AspNetCore包,这是AspNetCore应用集成Application Insights的核心依赖。可通过NuGet包管理器或命令行安装:

Install-Package Microsoft.ApplicationInsights.AspNetCore

2. 完整注册Application Insights服务

仅配置日志的AddApplicationInsights()不足以启动全量遥测收集,需同时注册核心遥测服务。修改Program.cs代码:

var builder = WebApplication.CreateBuilder(args);

// 注册Application Insights核心遥测服务
builder.Services.AddApplicationInsightsTelemetry();

// 配置日志集成(默认已包含在AddApplicationInsightsTelemetry中,可显式声明确保生效)
builder.Logging.AddApplicationInsights();

// 保留原有Blazor服务注册
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();

var app = builder.Build();

// 后续中间件配置...

app.Run();

3. 验证配置有效性

确认appsettings.json中的ApplicationInsights.ConnectionString完整且格式正确:

"ApplicationInsights": {
  "ConnectionString": "InstrumentationKey=***guid***;IngestionEndpoint=https://eastus-8.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus.livediagnostics.monitor.azure.com/"
}

若配置未被自动读取,可手动指定连接字符串排查:

builder.Services.AddApplicationInsightsTelemetry(options =>
{
    options.ConnectionString = "你的完整连接字符串";
});

4. 测试遥测发送

在Program.cs中添加测试日志,验证数据是否能被收集:

var app = builder.Build();

using (var scope = app.Services.CreateScope())
{
    var logger = scope.ServiceProvider.GetRequiredService<ILogger<Program>>();
    logger.LogInformation("Application Insights测试日志:应用启动完成");
}

// 后续中间件配置...

启动应用后等待5-10分钟(AI数据存在延迟),在Azure门户的Application Insights“日志”面板中搜索该日志内容。

5. 排查网络与权限问题

  • 确认开发/服务器环境可正常访问配置中的IngestionEndpoint,无防火墙或代理拦截请求。
  • 检查Azure门户中Application Insights资源状态,确保资源正常运行。

内容的提问来源于stack exchange,提问作者David Thielen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 10:45:13