0

0

C# Aspire仪表板使用方法 C#如何通过Aspire Dashboard监控应用

畫卷琴夢

畫卷琴夢

发布时间:2026-02-04 02:07:15

|

394人浏览过

|

来源于php中文网

原创

Aspire Dashboard 打不开页面通常因后台服务未启动、端口被占或容器未就绪;资源列表无服务是因未在 AspireAppHost 中显式注册;日志和拓扑依赖结构化日志与正确服务引用;metrics 404 需启用 Prometheus endpoint。

c# aspire仪表板使用方法 c#如何通过aspire dashboard监控应用

Aspire Dashboard 启动后打不开页面怎么办

默认启动 dotnet aspire dashboard 后,浏览器访问 http://localhost:18080 却显示连接被拒绝或空白页,大概率是后台服务没起来或端口被占。先确认 Aspire host 进程是否在运行:dotnet --list-processes 或任务管理器查 Microsoft.Extensions.Hosting 相关进程。

常见原因和应对方式:

  • 项目未启用 Aspire 托管模型:确保启动项目是 AspireApp.Host(或含 AddAspireDashboard() 的宿主),不是直接跑 Web API 项目
  • 端口冲突:用 netstat -ano | findstr :18080 查占用进程,或改用 dotnet aspire dashboard --port 18081
  • Dashboard 依赖的 Redis / PostgreSQL 容器未就绪:检查终端输出是否有 Waiting for container 'redis' to be ready... 类提示,等待几秒再刷新
  • 首次启动需拉取镜像:Docker Desktop 必须运行且有网络,docker ps 应能看到 aspire-dashboard-db 等容器

为什么资源列表里看不到我的服务

Aspire Dashboard 不会自动发现所有项目,只监控通过 AddProject()AddExecutable(...) 显式注册到 AspireAppHost 的组件。如果你的服务是独立部署的(比如手动 dotnet run),它不会出现在仪表板中。

正确做法是在 Program.cs 的宿主构建阶段注册:

var builder = DistributedApplication.CreateBuilder(args);
builder.AddProject("myapi"); // ← 必须这样注册
builder.AddProject("frontend");
builder.Build().Run();

注意点:

  • 项目名(如 "myapi")会作为服务标识显示在 Dashboard 左侧资源列表,不能重复
  • 若服务启动慢(如 EF Core 迁移耗时),Dashboard 可能短暂显示 “Not Ready”,等其健康检查通过(HTTP 200 或 /health endpoint)才会变绿
  • 确保服务暴露了可被 Dashboard 探测的 endpoint:默认要求 http://localhost:50xx/health 返回 200,否则需在注册时指定健康检查路径:.WithHealthCheck("/api/health")

如何查看服务的实时日志和依赖拓扑

Dashboard 页面左上角切换到 Logs 标签页,选中某服务后,日志流会自动按时间倒序加载。它不是简单转发 Console.WriteLine,而是依赖 Microsoft.Extensions.Logging 的结构化日志管道 —— 所以你的服务必须使用 ILogger 记录,且宿主已启用日志聚合(默认开启)。

maya.ai
maya.ai

一个基于AI的个性化互动和数据分析平台

下载

拓扑图(Topology 标签页)展示服务间调用关系,但前提是调用走的是 Aspire 内置的可观测性链路:

  • HTTP 调用需用 HttpClient 实例(由 builder.AddProject().WithReference(...) 注入),而非硬编码 URL
  • gRPC 调用需用 AddGrpcServiceReference 注册,Dashboard 才能解析服务发现地址并绘制箭头
  • 数据库连接不会自动出现在拓扑中 —— 即使你用了 AddRedisAddPostgres,它们只显示为独立资源节点,不体现“谁连了它”

Dashboard 报错 “Failed to load metrics: 404” 怎么办

这个错误说明服务没暴露 Prometheus metrics endpoint,或者路径不对。Aspire 默认期望服务在 /metrics 提供 OpenMetrics 格式数据(如 http://localhost:5091/metrics)。

修复步骤:

  • 在服务项目中安装 Prometheus.AspNetCore
  • Program.cs 添加:builder.Services.AddEndpointsApiExplorer(); builder.Services.AddPrometheusHttpMetrics(); app.MapPrometheusScrapingEndpoint();
  • 确保服务启动后,手动 curl curl http://localhost:5091/metrics 能返回文本指标(含 # TYPE process_cpu_seconds_total counter 等)
  • Dashboard 默认每 15 秒拉一次指标;如果服务刚启动,可能要等一两个周期才显示图表

注意:指标采集依赖服务的 ASPNETCORE_ENVIRONMENTDevelopment 或明确启用了 app.UsePrometheusHttpMetrics() 中间件 —— 生产环境常会关闭此 endpoint。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
什么是中间件
什么是中间件

中间件是一种软件组件,充当不兼容组件之间的桥梁,提供额外服务,例如集成异构系统、提供常用服务、提高应用程序性能,以及简化应用程序开发。想了解更多中间件的相关内容,可以阅读本专题下面的文章。

178

2024.05.11

Golang 中间件开发与微服务架构
Golang 中间件开发与微服务架构

本专题系统讲解 Golang 在微服务架构中的中间件开发,包括日志处理、限流与熔断、认证与授权、服务监控、API 网关设计等常见中间件功能的实现。通过实战项目,帮助开发者理解如何使用 Go 编写高效、可扩展的中间件组件,并在微服务环境中进行灵活部署与管理。

217

2025.12.18

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

445

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

178

2023.10.30

console接口是干嘛的
console接口是干嘛的

console接口是一种用于在计算机命令行或浏览器开发工具中输出信息的工具,提供了一种简单的方式来记录和查看应用程序的输出结果和调试信息。本专题为大家提供console接口相关的各种文章、以及下载和课程。

416

2023.08.08

console.log是什么
console.log是什么

console.log 是 javascript 函数,用于在浏览器控制台中输出信息,便于调试和故障排除。想了解更多console.log的相关内容,可以阅读本专题下面的文章。

510

2024.05.29

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

258

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

502

2024.04.08

全国统一发票查询平台入口合集
全国统一发票查询平台入口合集

本专题整合了全国统一发票查询入口地址合集,阅读专题下面的文章了解更多详细入口。

19

2026.02.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
进程与SOCKET
进程与SOCKET

共6课时 | 0.4万人学习

Redis+MySQL数据库面试教程
Redis+MySQL数据库面试教程

共72课时 | 6.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号