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

如何远程连接自托管SignalR的WPF应用?附相关咨询

自托管SignalR远程连接问题解答

问题场景

本地连接自托管SignalR服务器(WPF应用)正常,但远程无法连接;远程浏览器输入[服务器IPv4]:7777/signalr/hubs能看到生成的hubs文件,但无法正常连接服务器。

问题1:远程电脑浏览器需输入什么URL才能连接服务器?

远程浏览器访问网页时,需要输入服务器的IPv4地址+端口+网页的访问路径:

  • 如果网页是服务器默认首页,直接输入 http://[你的服务器IPv4地址]:7777/
  • 如果网页有具体路由(比如名为Index的页面),则输入 http://[你的服务器IPv4地址]:7777/Index

而SignalR的连接端点URL,客户端需要指向服务器的SignalR服务地址:http://[你的服务器IPv4地址]:7777/signalr

问题2:哪些代码决定该URL?

有两处关键代码决定了连接的URL:

  1. 服务器端:WPF主窗口中的服务地址配置
private string url = "http://*:7777";

这里的*表示服务器监听所有网卡的7777端口,7777是对外提供服务的端口,这决定了服务器对外暴露的访问端口和范围。

  1. 客户端:两处硬编码的地址配置
  • Index页面中引用自动生成的hubs脚本:
<script src="http://localhost:7777/signalr/hubs"></script>
  • Main.js中配置SignalR连接地址:
$.connection.hub.url = "http://localhost:7777/signalr";

关键问题修复建议

你当前客户端代码硬写了localhost,远程电脑访问时会指向自身本地,导致无法连接到你的服务器。推荐改成相对路径,自动适配当前访问的主机地址:

  1. 修改Index页面的hubs脚本引用:
<script src="/signalr/hubs"></script>
  1. 修改Main.js中的连接地址:
$.connection.hub.url = "/signalr";

这样不管是本地访问还是远程访问,客户端都会自动使用当前页面的主机地址来连接SignalR服务器,无需手动修改IP。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 01:15:41