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

如何在Blazor 8中使用独立Aspire仪表板?配置遇阻求助

实现独立Aspire仪表板对接Blazor WebApp的步骤

首先明确核心点:单独使用Aspire仪表板需要先启动仪表板服务,再让Blazor应用把遥测数据发送过去——仅添加OtlpExporter不会自动创建仪表板。以下是可行的实现流程:

1. 安装必要NuGet包

在Blazor服务器端项目中执行以下命令安装依赖:

dotnet add package Aspire.Dashboard
dotnet add package OpenTelemetry.Exporter.OpenTelemetryProtocol

2. 修正Program.cs配置

你当前的代码存在两个关键问题:追踪(Tracing)模块未配置Otlp导出,且端点指向了标准Otlp端口(4317)而非Aspire仪表板默认端口(18889)。修改后代码如下:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSingleton<CustomMeters>();

// 统一配置Aspire仪表板的Otlp端点
var aspireOtlpEndpoint = builder.Configuration.GetValue("Otlp:Endpoint", "http://localhost:18889");

builder.Services.AddOpenTelemetry()
    .WithMetrics(metrics => metrics
            .AddMeter("Microsoft.AspNetCore.Hosting")
            .AddMeter("Microsoft.AspNetCore.Server.Kestrel")
            .AddMeter("Microsoft.AspNetCore.Http.Connections")
            .AddMeter("System.NET.Http")
            .AddHttpClientInstrumentation()
            .AddAspNetCoreInstrumentation()
            .AddOtlpExporter(opt => opt.Endpoint = new Uri(aspireOtlpEndpoint)))
    .WithTracing(tracing => tracing
            .SetSampler(new AlwaysOnSampler())
            .AddHttpClientInstrumentation()
            .AddAspNetCoreInstrumentation()
            .AddOtlpExporter(opt => opt.Endpoint = new Uri(aspireOtlpEndpoint))); // 补上追踪模块的Otlp导出

// 调整日志输出指向Aspire仪表板
builder.Logging.ClearProviders();
builder.Logging.AddOpenTelemetry(options =>
{
    options.AddConsoleExporter();
    options.AddOtlpExporter(otlpOptions =>
        otlpOptions.Endpoint = new Uri(aspireOtlpEndpoint));
});

builder.Services.AddRazorComponents()
    .AddInteractiveServerComponents()
    .AddInteractiveWebAssemblyComponents();

var app = builder.Build();
// ... 保留原有中间件配置

3. 启动独立Aspire仪表板

打开命令行执行以下命令启动仪表板服务:

dotnet aspire dashboard

默认情况下,仪表板会运行在http://localhost:18889,与我们代码中配置的端点一致。

4. 验证数据接收

启动你的Blazor WebApp,访问页面触发一些请求后,打开Aspire仪表板页面,就能看到日志、指标和追踪数据了。

常见排查点

  • 确认Aspire仪表板和Blazor应用的Otlp端点完全一致,避免端口混淆(Aspire默认18889,标准Otlp是4317)。
  • 检查NuGet包版本兼容性,确保OpenTelemetry相关包与Aspire包版本匹配。
  • 如果无数据,查看Blazor应用控制台日志,排查是否有遥测发送失败的报错信息。

内容的提问来源于stack exchange,提问作者Paul Meems

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 17:40:07