下面我系统、按顺序、结合源码层面,把 Blazor 项目从“按下 F5”到“页面首次渲染完成”的完整运行加载顺序讲清楚。
我会同时覆盖 Blazor Server 和 Blazor WebAssembly,并指出关键差异点,方便你对号入座。
一、总体概览(先看这张“地图”)
浏览器请求
↓
ASP.NET Core 启动
↓
中间件管道
↓
Blazor 端点命中
↓
创建 Circuit / Host
↓
加载 .NET Runtime
↓
初始化 DI / JS ↔ .NET 互操作
↓
执行 App.razor
↓
路由匹配
↓
渲染页面组件
二、Blazor Server 的加载顺序(最常见)
✅ Blazor Server = .NET 跑在服务器,浏览器只负责 UI
① 浏览器发起请求
https://localhost:5001/
-
这是一个 HTTP(S) 请求
-
由 ASP.NET Core 接收
② ASP.NET Core 启动(Program.cs)
Program.cs
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor(); // ⭐ 关键
var app = builder.Build();
此时发生了什么?
-
注册:
-
Razor Pages
-
Blazor Server 所需服务
-
SignalR(用于实时通信)
-
③ 中间件管道执行
app.MapBlazorHub(); // ⭐ SignalR Hub
app.MapFallbackToPage("/_Host");
请求匹配顺序:
| 请求 |
命中 |
|---|---|


1700

被折叠的 条评论
为什么被折叠?



