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

Blazor网站发布到IIS 10后运行报错 本地运行正常问题咨询

故障原因
  • 核心报错原因是Blazor WebAssembly客户端运行时无法加载Microsoft.AspNetCore.Components.Authorization 5.0.0.0版本程序集。你的自定义JWTAuthenticationStateProvider类继承了该程序集中的AuthenticationStateProvider基类,是项目唯一依赖该程序集的入口,因此移除该类后程序可正常运行。
  • 本地环境正常是因为开发环境默认已安装该依赖包,发布时未将该程序集正确打包到发布产物中,常见触发场景包括:
    • Blazor WebAssembly客户端项目未显式安装对应版本的Microsoft.AspNetCore.Components.Authorization NuGet包,仅通过其他包间接依赖,发布时被判定为未使用未打包
    • 发布时开启了Blazor WebAssembly的程序集裁剪(Linker)功能,裁剪逻辑判定该程序集未被使用,将其从发布产物中移除
解决方案
  1. 显式安装NuGet包
    在Blazor WebAssembly客户端项目中安装与项目.NET版本匹配的Microsoft.AspNetCore.Components.Authorization NuGet包,你的项目为.NET 5版本,可安装最新的5.x稳定版。
  2. 调整裁剪配置(若开启了程序集裁剪)
    如果需要保留裁剪功能优化包体积,可在客户端项目的.csproj文件中添加如下配置,将该程序集加入裁剪排除列表:
<ItemGroup>
  <TrimmerRootAssembly Include="Microsoft.AspNetCore.Components.Authorization" />
</ItemGroup>

如果不需要裁剪,可直接关闭裁剪功能:

<PropertyGroup>
  <BlazorWebAssemblyEnableLinking>false</BlazorWebAssemblyEnableLinking>
</PropertyGroup>
  1. 验证发布产物
    重新发布项目后,检查发布目录下的wwwroot/_framework文件夹,确认存在Microsoft.AspNetCore.Components.Authorization.dll文件,再部署到IIS即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:06:02