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

Angular应用无法连接ASP.Net SignalR服务器报错求助

解决SignalR连接报错"Cannot read properties of undefined (reading 'length')"
  • 版本兼容性问题(最常见原因)
    .NET Framework的SignalR属于旧版(ASP.NET SignalR 2.x),无法与Angular端的@microsoft/signalr包兼容,必须使用适配旧版的@aspnet/signalr包。
    执行以下命令替换依赖:

    npm uninstall @microsoft/signalr
    npm install @aspnet/signalr
    

    客户端连接代码中导入包要对应:

    import * as signalR from '@aspnet/signalr';
    
  • 移除CORS配置冲突
    服务器端同时全局启用AllowAll和Hub上单独配置[EnableCors]可能导致规则冲突,建议二选一:
    方案1:保留全局配置,删除Hub类上的[EnableCors]特性
    方案2:删除全局app.UseCors(CorsOptions.AllowAll),只保留Hub上的[EnableCors]配置

  • 验证连接路径正确性
    确保Angular端withUrl的路径和服务器MapSignalR的路径完全一致,比如服务器配置的是/Art,客户端连接地址应为http://你的服务器地址/Art,注意不要遗漏路径或拼写错误。

  • 启用详细日志排查
    服务器端开启详细错误日志:

    public void Configuration(IAppBuilder app)
    {
        app.UseCors(CorsOptions.AllowAll);
        app.MapSignalR("/Art", new HubConfiguration
        {
            EnableDetailedErrors = true
        });
    }
    

    Angular端开启Debug级日志:

    const connection = new signalR.HubConnectionBuilder()
      .withUrl('http://localhost:xxxx/Art')
      .configureLogging(signalR.LogLevel.Debug)
      .build();
    

    查看日志中更详细的错误信息,定位具体问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:55:21