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

部署在CyberPanel上的ASP.NET SignalR WebSocket连接异常求助

解决CyberPanel(OpenLiteSpeed)下ASP.NET SignalR WebSocket连接失败问题

针对你遇到的「Cannot find web socket backend. URI: [/fazendahub]」错误,OpenLiteSpeed对WebSocket的处理逻辑和Apache/Nginx不同,不能直接套用Apache的Rewrite规则,以下是可行的解决方案:

方案一:使用OpenLiteSpeed原生WebSocket代理配置(推荐)

  1. 登录CyberPanel,进入对应虚拟主机的「LiteSpeed Web Admin Console」
  2. 导航到「Virtual Hosts」→ 你的域名(api.milksolve.com.br)→「Context」标签页
  3. 点击「Add」添加新Context:
    • Type:选择「WebSocket Proxy」
    • URI:填写/fazendahub(对应你的SignalR Hub路径)
    • Address:填写127.0.0.1:5000(你的ASP.NET Web API服务监听地址和端口)
    • 其余保持默认,点击「Save」保存
  4. 重启LiteSpeed服务(在LiteSpeed Web Admin顶部点击「Actions」→「Graceful Restart」)

方案二:修正Rewrite规则适配OpenLiteSpeed

如果仍想用Rewrite方式,替换原有规则为以下OpenLiteSpeed兼容版本:

RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade [NC]
RewriteRule ^/fazendahub(.*)$ ws://127.0.0.1:5000/fazendahub$1 [P,L]

注意:

  • 规则要精确匹配/fazendahub路径,避免全局代理引发其他问题
  • 必须添加[L]标志终止后续规则处理
  • 确保Rewrite规则在CyberPanel的「Rewrite Rules」页面正确保存,之后重启LiteSpeed服务

额外检查项

  • 确认ASP.NET服务配置:在Program.cs中确保已启用SignalR并正确映射Hub,且允许跨域(若客户端域名不同):
    builder.Services.AddCors(options =>
    {
        options.AddPolicy("AllowAll", policy =>
        {
            policy.WithOrigins("你的客户端域名")
                  .AllowAnyHeader()
                  .AllowAnyMethod()
                  .AllowCredentials();
        });
    });
    
    app.UseCors("AllowAll");
    app.MapHub<YourFazendaHub>("/fazendahub");
    
  • 验证后端服务状态:确保ASP.NET Web API在127.0.0.1:5000正常运行,且/fazendahub路径可通过本地访问
  • 检查防火墙:确认CyberPanel服务器的防火墙允许本地进程访问5000端口,且80/443端口的WebSocket流量未被拦截
  • 客户端连接地址:确保客户端使用https://api.milksolve.com.br/fazendahub连接,而非直接访问5000端口

内容的提问来源于stack exchange,提问作者Heitor E. Rezende

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 18:22:54