2014-06-27 105 views
0

我正在尋找一些關於在運行帶有IIS6的Windows Server 2003 R2的服務器上設置MVC/XSockets項目的指導。在Windows Server 2003 R2,IIS6上設置XSockets

我們的團隊正在開發一個使用XSockets 3.x實時動態顯示數據的web應用程序。我們使用我們的時間輸入系統在「儀表板」上顯示當前時間條目。員工通過一個單獨的應用程序輸入他們的時間,儀表板應用程序應該顯示最近的活動更新。

該項目使用MVC4框架。當從我的開發機器進行測試時,這非常適用,與服務器分開。 ws服務器實例在ws://x.x.x.x:4502上設置,其中x.x.x.x是服務器的IP。 XSockets組件集成在同一個項目中。

在將我的本地項目推送到服務器上並進行一些設置後,除XSockets功能外,一切正常。 XSockets服務器無法從服務器外部訪問。當我在服務器內進行測試時,意思是打開瀏覽器並轉到Web應用程序,它在我的開發機器上正常工作。

我試過了xsockets.net上概述的自定義配置設置,但我對如何定義ws服務器實例有點困惑。我使用服務器的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我通過「://dashboard.ourdomain.com:WS 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上實現客戶端 - 服務器連接的正確方法是什麼?非常感謝指點和建議,因爲我幾天的搜索沒有取得有效的結果。

+0

您使用的是哪個版本的.NET?它甚至支持Windows Server 2003嗎? –

+0

@John Saunders,我們使用.NET 4.我們還在該服務器上託管其他MVC4站點。 XSockets的要求聲明.NET 4+,並且它「幾乎可以在任何地方運行」。 [Xsockets requirements](http://xsockets.net/docs/supported-platforms) – Sebbo

+0

你是對的。從http://msdn.microsoft.com/en-us/library/8z6watww%28v=vs.100%29.aspx開始,支持Server 2003。僅從FYI起,http://msdn.microsoft.com/en-us/library/8z6watww%28v=vs.110%29.aspx,.NET 4.5刪除了對Server 2003的支持。 –

回答

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'); 

那花了排除故障的嚴重量,但我很高興我得到了它想通了。

相關問題