Asp.net mvc 4 在Windows Server 2003 R2、IIS6上设置XSockets

Asp.net mvc 4 在Windows Server 2003 R2、IIS6上设置XSockets,asp.net-mvc-4,xsockets.net,Asp.net Mvc 4,Xsockets.net,我正在寻找一些关于在运行WindowsServer2003、R2和IIS6的服务器上设置MVC/XSockets项目的指导 我们的团队正在开发一个webapp,它使用XSockets 3.x实时动态显示数据。我们使用时间输入系统在仪表板上显示当前时间输入。员工通过一个单独的应用程序输入他们的时间,仪表板应用程序应该显示最新的活动更新 该项目使用MVC4框架进行。这在我的开发机器上进行测试时非常有效,与服务器分离。ws-server实例安装在ws://x.x.x.x:4502上,其中x.x.x.x

我正在寻找一些关于在运行WindowsServer2003、R2和IIS6的服务器上设置MVC/XSockets项目的指导

我们的团队正在开发一个webapp,它使用XSockets 3.x实时动态显示数据。我们使用时间输入系统在仪表板上显示当前时间输入。员工通过一个单独的应用程序输入他们的时间,仪表板应用程序应该显示最新的活动更新

该项目使用MVC4框架进行。这在我的开发机器上进行测试时非常有效,与服务器分离。ws-server实例安装在ws://x.x.x.x:4502上,其中x.x.x.x是服务器的IP。XSockets组件集成在同一个项目中

在将我的本地项目推送到服务器上并进行一些设置之后,除了XSockets功能外,一切都正常。无法从服务器外部访问XSockets服务器。当我从服务器内部进行测试时,这意味着打开浏览器并转到webapp,它可以像在我的开发机器上一样正常工作

我尝试过按照xsockets.net上概述的自定义配置设置进行操作,但对于如何定义ws-server实例,我有点困惑。我是否使用服务器的IP?本地主机IP 127.0.0.1?我两个都试过了,但都不行。我尝试添加此自定义配置设置:

public class XSocketsConfig : ConfigurationSetting
{
    public XSocketsConfig() : base(new Uri("ws://dashboard.ourdomain.com:4502/"), new Uri("ws://x.x.x.x:4502")) { }
}
从javascript中,我通过ws://dashboard.ourdomain.com:4502/connection访问XSocket,但在部署到服务器后测试它时,它不起作用。我还尝试:

public class XSocketsConfig : ConfigurationSetting
{
    public XSocketsConfig() : base(new Uri("ws://x.x.x.x:4502")) { }
}

or

public class XSocketsConfig : ConfigurationSetting
{
    public XSocketsConfig() : base(new Uri("ws://127.0.0.1:4502")) { }
}
我确实启用了服务器防火墙,让流量通过端口4502。同样,在我的本地机器上,一切都很好,所以这让我相信它要么是服务器上的设置,要么是XSockets的配置设置


在IIS 6上实现客户机-服务器连接的正确方法是什么?非常感谢您的指点和建议,因为我几天的搜索还没有得到有效的结果。

好的,所以我终于找到了答案。这毕竟是一个防火墙问题。我必须将防火墙配置为允许公共ip和端口上的流量,并将该流量转发到私有ip和端口。我的XSockets配置最终如下所示:

//http://xsockets.net/docs/configuration#public--private-endpoint
public class XSocketsConfig : ConfigurationSetting
{
    public XSocketsConfig() : base(new Uri("ws://x.x.x.x:4502/"), new Uri("ws://y.y.y.y:4502")) { }
}
其中x.x.x.x是服务器的公共IP地址,y.y.y.y是局域网上的私有IP地址。在客户端js上,我执行以下操作:

var conn = new XSockets.WebSocket('ws://x.x.x.x:4502/Activity');

这需要进行大量的故障排除,但我很高兴我找到了答案。

您使用的是哪个版本的.NET?它甚至支持Windows Server 2003吗?@John Saunders,我们使用的是.NET 4。我们也在该服务器上托管其他MVC4站点。XSockets的需求声明了.NET4+,并且它几乎可以在任何地方运行。你说得对。从中,支持Server 2003。仅供参考,.NET4.5删除了对Server2003的支持。