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

Blazor.Client启动无法访问Blazor.Server接口及Server启动客户端断点不命中问题

解决方案配置步骤

一、修复inspectUri启动报错

inspectUri是Blazor WebAssembly(.Client项目)专属的调试配置,不能放在.Server项目的launchSettings.json中,直接删除.Server配置里的inspectUri行即可解决该启动报错。

二、方案1:以Server项目为启动项,同时命中Client断点

这是官方推荐的调试方案,配置步骤如下:

  • 先确认.Server项目已经添加了对.Client项目的项目引用
  • 修复.Server项目Startup.cs的路由冲突,删除下述冗余配置:
services.AddMvc(options =>
{
    options.EnableEndpointRouting = false;
});

你后续已经配置了AddControllersWithViews、AddRazorPages和端点路由规则,这段配置会导致路由逻辑冲突,是之前无法命中断点的核心原因之一。

  • 右键解决方案→属性→启动项目→选择「单启动项目」,下拉选中你的.Server项目,启动调试即可,此时Client端的断点可以正常命中。
    注意:Blazor WASM调试仅支持Chrome/Edge内核浏览器,使用其他浏览器会出现断点无法命中的问题

三、方案2:单独启动Client项目可正常访问Server API

如果需要单独启动Client调试,按以下步骤配置:

  • 首先确认Server项目运行地址为你配置的https://localhost:5001;http://localhost:5000
  • 打开.Client项目的Program.cs,配置HttpClient默认基地址为Server的运行地址:
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("https://localhost:5001") });
  • 给.Server项目配置跨域规则,在Startup.cs的ConfigureServices方法中添加:
services.AddCors(options =>
{
    options.AddPolicy("DevAllow", policy =>
    {
        policy.WithOrigins("http://localhost:xxxx", "https://localhost:yyyy") // 替换为你.Client项目实际的启动地址
              .AllowAnyHeader()
              .AllowAnyMethod();
    });
});

在Configure方法的app.UseRouting()之后、app.UseAuthentication()之前添加跨域中间件:

app.UseCors("DevAllow");
  • 如果需要用多启动方案,右键解决方案→属性→启动项目→选择「多个启动项目」,将.Server和.Client的操作都设为「启动」,且调整顺序让.Server启动优先级高于.Client即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:00:00