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

Blazor Server引用RCL DLL设置首页遇404问题求助

解决Blazor Server引用独立RCL DLL后页面404的问题

以下是针对问题的排查和解决步骤:

1. 确认RCL的编译与引用正确性

  • 确保你的RCL项目是Razor Class Library类型(而非普通类库),且编译目标.NET版本与Blazor Server项目完全一致。
  • 检查添加的DLL引用是否为RCL编译后的最新版本,可尝试删除旧引用,重新从Azure DevOps归档拉取最新DLL添加。

2. 修正Routes.razor的路由配置

你当前的Routes.razor代码存在语法问题,Razor表达式需要用@标记才能正确解析,修改后的代码如下:

<Router AppAssembly="@typeof(Program).Assembly" 
        AdditionalAssemblies="@(new[] { typeof(Default).Assembly })">
    <!-- 保留原Router内的Found、NotFound等核心内容 -->
</Router>
  • 注意:typeof(Default)必须能正确定位到RCL中Default.razor对应的类,若该组件在RCL的特定命名空间下(如MySharedRCL.Pages),需完整写为typeof(MySharedRCL.Pages.Default)。

3. 验证RCL页面的路由标记

确认RCL中Default.razor的@page "/"标记无拼写错误,且Blazor Server项目中不存在其他标记为@page "/"的组件(你已移除Home.razor,此点可忽略,但需确保无遗漏)。

4. 清理缓存并重建项目

  • 删除Blazor Server项目下的bin和obj文件夹,清理编译缓存。
  • 重新生成Blazor Server项目,确保RCL DLL被正确复制到输出目录。

5. 排查依赖注入问题

虽然你遇到的是404,但如果RCL组件依赖的服务未正确注册或初始化,可能间接引发路由匹配失败:

  • 需在Default.razor顶部添加@inject NavigationManager navManager,显式注入导航服务。
  • 确认config对应的配置服务已在Server项目Program.cs中完成注册(如builder.Configuration相关配置)。
  • 检查BusinessSingleton是否在Server项目中完成初始化,确保GetBySiteID方法能正常调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 13:02:18