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

集成Azure AD的Blazor Server聊天应用运行时在Program.cs抛出异常

异常原因
  • 方法名拼写错误:你在Startup.ConfigureServices中调用的AddAzureSingalR()方法存在拼写错误,正确方法名为AddAzureSignalR(),笔误漏写字母g会导致依赖注入容器无法找到对应服务,触发启动异常。
  • 连接字符串配置无效:Secrets.json的配置优先级高于appsettings.json,你当前两个配置文件中Azure:SignalR:ConnectionString的值均为占位符,未替换为Azure门户中SignalR服务的真实连接字符串,服务初始化时无法连接到Azure SignalR实例。
  • 公司VPN网络拦截:本地调试时接入的公司VPN通常会限制出站请求,若到Azure SignalR服务域名的请求被拦截,会导致服务初始化失败。
  • 全局授权策略冲突:你配置了全局授权回退策略,SignalR的协商端点未适配身份验证规则,导致AAD身份验证上下文无法正确传递到Azure SignalR服务。
解决方法
  • 修正方法名拼写:将Startup.ConfigureServices中的代码services.AddSignalR().AddAzureSingalR();改为services.AddSignalR().AddAzureSignalR();。
  • 替换有效连接字符串:进入Azure门户找到对应的SignalR服务,从「密钥」菜单下复制完整连接字符串,替换Secrets.json中Azure:SignalR:ConnectionString的属性值,注意不要将真实连接字符串提交到公共代码仓库。
  • 排查VPN网络限制:临时断开公司VPN后启动项目测试,如果可以正常启动,联系公司IT将你的Azure SignalR服务域名(格式为<你的服务名>.service.signalr.net)加入出站访问白名单。
  • 适配身份验证配置:修改AddAzureSignalR的配置,显式指定身份验证类型,确保AAD身份验证上下文可以正确传递到SignalR服务:
services.AddSignalR().AddAzureSignalR(options =>
{
    options.AuthenticationType = OpenIdConnectDefaults.AuthenticationScheme;
});
  • 检查NuGet包依赖:确保你已经安装了对应.NET版本的Microsoft.Azure.SignalR NuGet包,版本号与项目其他Microsoft系包版本保持一致,避免版本冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:36:08