在Windows Server 2003 R2,IIS6上设置XSocket

时间:2014-06-27 01:45:44

标签: asp.net-mvc-4 xsockets.net

我正在寻找有关在运行Windows Server 2003 R2和IIS6的服务器上设置MVC / XSockets项目的一些指导。

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

该项目是使用MVC4框架制作的。从我的开发机器进行测试时,这与服务器分开时效果很好。 ws服务器实例在ws://x.x.x.x:4502上设置,其中x.x.x.x是服务器的IP。 XSockets组件集成在同一个项目中。

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

我已经尝试过遵循xsockets.net上概述的自定义配置设置,但是我对如何定义ws服务器实例感到有些困惑。我使用服务器的IP吗? localhost 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 /”连接访问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上实现客户端 - 服务器连接的正确方法是什么?非常感谢指针和建议,因为我的几天搜索还没有产生有效的结果。

1 个答案:

答案 0 :(得分:0)

好的,所以我终于明白了。毕竟是防火墙问题。我必须配置防火墙以允许公共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是LAN上的专用IP地址。在客户端(js),然后我做:

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

这需要进行大量的故障排除,但我很高兴我弄清楚了。