SignalR:使用“真实”IP但不使用NAT

时间:2017-08-09 17:03:01

标签: c# wireshark signalr-hub signalr.client

我有一个用VS2015编写的自托管C#Windows服务,其中包含SignalR并使用2.2.2和jquery 3.2.1。它适用于使用“真实”(可寻址)IP地址的所有系统。但是NAT背后的计算机不能。他们收到“SignalR:加载集线器时出错。请确保您的集线器参考正确,例如”错误。如果您使用URL http://servername/signal/hubs“,则会出现”服务器花费太长时间才能响应“错误。(具有真实IP的客户端会看到源代码)。

客户端上禁用了Windows防火墙。但是,SignalR服务在80和443上运行,所以我不认为这会是一个问题。无论如何,我在这一点上很困惑,我甚至不知道要发布什么代码。

我可以检查,做什么,发布以找出为什么这不适用于NAT'd客户?

编辑:我有其他人测试这个,发现我们两个使用U-Verse的人有连接问题。然而,在公司NAT上的主要办公室的人们正在连接。也许这就是U-Verse路由器/防火墙中的某些东西正在停止连接。但为什么它会阻止端口80和443? SignalR是否在连接上做任何不寻常的事情?

编辑#2:我在服务器上运行了Wireshark。它接收来自NAT'd客户端的请求,但继续重试将响应发送到端口80.我并不擅长理解Wireshark或寻找什么。显然,有些东西不能正常运作。

1 个答案:

答案 0 :(得分:0)

这对我来说非常愚蠢。我使用的服务器仅用于没有安装IIS的SignalR ......显然你需要这样做,以便在防火墙中打开端口80和443。所有18台服务器上的防火墙都设置为允许从我的任何域的IP地址进行访问。使用NAT时,它使用完全不同的IP,因此被停止。我在SignalR服务器上打开80/443,一切都很好...... D'哦!