Blazor 项目发布和部署到 IIS 的步骤

Blazor项目部署IIS需先明确类型:WebAssembly仅需静态文件托管,用无托管代码应用池;Server需安装ASP.NET Core Hosting Bundle、启用AspNetCoreModuleV2和WebSocket,并配置web.config反向代理。

blazor 项目发布和部署到 iis 的步骤

Blazor 项目发布并部署到 IIS,核心是把应用打包成静态文件(Blazor WebAssembly)或可执行的 .NET 应用(Blazor Server),再配置 IIS 正确托管。关键点在于发布方式、IIS 模块安装、网站配置和权限设置。

确认 Blazor 类型:WebAssembly 还是 Server?

两者部署方式完全不同,必须先明确:

  • Blazor WebAssembly:纯前端应用,发布后是一堆静态文件(_framework、index.html 等),只需 IIS 当静态服务器用,无需 .NET 运行时。
  • Blazor Server:服务端渲染,依赖 .NET 运行时和 SignalR 长连接,需要 IIS 启用 ASP.NET Core 模块,并托管为反向代理。

发布项目(Visual Studio 或 CLI)

在项目根目录执行发布命令,输出到指定文件夹:

  • WebAssembly:dotnet publish -c Release -o ./publish,输出内容可直接拷贝到 IIS 物理路径。
  • Server:dotnet publish -c Release -o ./publish --self-contained false(推荐依赖系统已安装的 .NET 运行时)。
  • 确保发布前 App.razorProgram.cs 中的基路径()与 IIS 网站路径一致;若部署在根目录,保持

IIS 基础配置(两者都需)

打开 IIS 管理器,新建网站或应用:

问小白

问小白

免费使用DeepSeek满血版

下载

  • 物理路径指向发布后的文件夹(如 C:/inetpub/wwwroot/myblazor)。
  • 绑定:设置域名或 IP + 端口(如 http:80),注意避免端口冲突。
  • 应用程序池:
    • WebAssembly:用无托管代码的应用程序池(.NET CLR 版本选“无”);
    • Server:必须选对应版本的 .NET CLR(如 .NET 6/7/8),且“托管管道模式”为“集成”。

Server 模式额外必需项

Blazor Server 依赖 ASP.NET Core 的反向代理能力,缺一不可:

  • 在目标服务器安装 ASP.NET Core 运行时 Hosting Bundle(不是 SDK),官网下载对应 .NET 版本的 Hosting Bundle 并完整安装(含 Windows Server Hosting 模块)。
  • 检查 IIS 中是否启用 ASP.NET Core Module:模块列表里应有 AspNetCoreModuleV2
  • 确保网站根目录下有 web.config 文件(发布时自动生成),内容包含 ,且 forwardWindowsAuthToken="false"(除非用 Windows 身份验证)。
  • SignalR 需要 WebSocket 支持:IIS → 服务器功能 → 添加 WebSocket 协议(Windows 功能里启用)。

基本上就这些。WebAssembly 部署轻量但要注意路由(需配置 URL 重写处理客户端路由);Server 部署稍重但开发体验一致。别漏掉 Hosting Bundle 和 web.config —— 这两个是最常导致 500 或 502 错误的原因。

https://www.php.cn/faq/2011977.html

发表回复

Your email address will not be published. Required fields are marked *