Blazor应用可部署到IIS,Blazor Server需ASP.NET Core运行时和正确web.config,Blazor WebAssembly需配置.wasm MIME类型及URL重写规则回退至index.html。
Blazor 应用(尤其是 Blazor Server 和 Blazor WebAssembly)可以顺利部署到 Windows Server 的 IIS 上,但需注意两者部署方式不同:Blazor Server 是服务端渲染,依赖 SignalR 连接;Blazor WebAssembly 是纯前端静态文件,需正确配置 MIME 类型和重定向规则。
Blazor Server 部署到 IIS
Blazor Server 本质是一个 ASP.NET Core 应用,部署方式与普通 ASP.NET Core MVC/ Razor Pages 应用一致:
- 发布项目:在 Visual Studio 中右键项目 → “发布” → 选择“文件夹”,或使用命令行
dotnet publish -c Release -o ./publish - 确保目标服务器已安装 ASP.NET Core 运行时(非 SDK),版本需与项目目标框架匹配(如 .NET 6/7/8)
- 在 IIS 中新建网站或应用池,应用池 .NET 版本选“无托管代码”,启动模式为“集成”,并启用“32位应用程序”(仅当依赖 x86 组件时)
- 物理路径指向发布后的文件夹(含
web.config),IIS 会自动识别并托管 - 确认
web.config存在且内容正确(发布时自动生成),重点检查aspNetCore段中processPath和arguments是否指向正确的 DLL
Blazor WebAssembly 部署到 IIS
这是静态站点部署,不运行 .NET 后端,只需 IIS 提供文件服务 + 正确路由回退(避免刷新 404):
- 发布客户端项目(通常是
Client子项目):dotnet publish -c Release -o ./publish,输出的是纯 HTML/JS/WASM 文件 - 将发布文件夹全部复制到 IIS 网站根目录(如
C:\inetpub\wwwroot\myapp) - 在网站根目录添加
web.config(若不存在),配置 URL 重写,确保所有非文件请求都返回index.html:
&conditions>
- 确保 IIS 已启用 URL 重写模块(需单独下载安装)
- 添加
.wasmMIME 类型(上面web.config已包含),否则 WASM 文件会 404
常见问题与检查点
部署后访问异常?快速排查这几项: