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

VB.Net与JavaScript使用SignalR求助:前端报错及后端配置

问题解决方案

一、解决signalR is not defined报错问题

这个报错的核心原因是未在ASPX页面中引入SignalR客户端JavaScript库,同时前端连接地址也需匹配服务端配置,具体修复步骤如下:

  1. 引入SignalR客户端JS库
    在ASPX页面的<head>或<body>末尾添加脚本引用(可使用官方CDN,或本地项目安装NuGet包后引用本地文件):
<!-- 引入SignalR客户端库 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/7.0.10/signalr.min.js"></script>

若使用本地文件,需确保路径正确,比如项目安装Microsoft.AspNetCore.SignalR.Client包后,引用wwwroot/lib/microsoft-signalr/signalr.min.js。

  1. 修正前端连接地址
    服务端配置为app.MapHub("/chat"),因此前端withUrl需指向该Hub地址,而非"/Chat/Index",修改后的代码片段:
var connection = new signalR.HubConnectionBuilder()
    .withUrl("https://localhost:57553/chat", {
        skipNegotiation: true,
        transport: signalR.HttpTransportType.WebSockets
    })
    .build();
  1. 确保脚本加载顺序正确
    自定义的NotificationPage.js必须在SignalR客户端库之后加载,避免自定义代码执行时SignalR尚未初始化。

二、VB后端等效于app.MapHub("/chat")的配置

.NET 6+顶级语句模式(Program.vb)

Imports Microsoft.AspNetCore.SignalR

Dim builder = WebApplication.CreateBuilder(args)

' 注册SignalR服务
builder.Services.AddSignalR()

Dim app = builder.Build()

' 配置Hub路由,ChatHub为你的Hub类名称
app.MapHub(Of ChatHub)("/chat")

app.Run()

旧版.NET Framework/.NET Core 3.x Startup模式(Startup.vb)

Public Sub Configure(app As IApplicationBuilder, env As IWebHostEnvironment)
    ' 其他中间件配置代码...

    app.UseEndpoints(Sub(endpoints)
                         endpoints.MapHub(Of ChatHub)("/chat")
                     End Sub)
End Sub

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:40:41