SignalR连接拒绝错误求助:格式化系统后Hub无法生成
我来帮你排查这个SignalR的连接问题,你遇到的Failed to load resource: net::ERR_CONNECTION_REFUSED和Hub无法生成的情况,大概率是配置或者服务启动环节出了问题,我整理几个针对性的排查点:
检查SignalR路由配置正确性
不同的ASP.NET架构配置方式不同:- 传统ASP.NET项目:确认
Global.asax的Application_Start方法中是否添加了RouteTable.Routes.MapHubs();,且该代码要放在其他路由注册之前。 - OWIN启动模式:检查
Startup.cs中是否包含app.MapSignalR();,确保OWIN启动逻辑正常执行。
- 传统ASP.NET项目:确认
验证站点端口绑定与占用情况
你使用的是localhost:8080,需要确认:- IIS中你的站点绑定的HTTP端口为8080(打开IIS管理器→站点→编辑绑定,查看HTTP协议的端口设置)。
- 端口8080未被其他程序占用,可通过命令行执行
netstat -ano | findstr ":8080"查看占用进程,若被占用可更换端口或关闭占用程序。
确保客户端与服务器端SignalR版本兼容
SignalR要求客户端脚本与服务器端NuGet包版本完全一致。比如服务器端安装了Microsoft.AspNet.SignalR 2.4.3,客户端必须使用对应的jquery.signalR-2.4.3.min.js。可通过NuGet包管理器检查服务器版本,同步更新客户端脚本。检查应用程序池的.NET版本设置
你的系统依赖.NET Framework 4.5,因此IIS中对应站点的应用程序池需设置为.NET CLR版本 v4.0.x(而非v2.0或无托管代码)。打开IIS→应用程序池→目标池→高级设置,确认.NET CLR版本配置正确。手动验证Hub生成地址
直接在浏览器中访问http://localhost:8080/signalr/hubs(默认SignalR Hub生成路径为/signalr/hubs,除非你自定义了路由):- 若返回404,说明路由配置存在问题;
- 若仍提示连接拒绝,表明站点未在8080端口正常运行。
确认Web.config中的SignalR启动配置
若使用OWIN模式,检查Web.config的appSettings节点是否包含:<add key="owin:AutomaticAppStartup" value="true" />该配置确保OWIN自动启动SignalR服务,若设置为
false会导致Hub无法生成。
你可以按照上述步骤逐一排查,优先从路由配置和端口绑定入手,这两个是此类问题最常见的诱因。
内容的提问来源于stack exchange,提问作者Angappan.S

