2013-02-14 87 views
1

我有一个MVC4网站要求我已经在我的Azure云服务的Web角色,像这样使用Alchemy实现的web套接字服务器:实现web套接字服务器在Azure云服务Web角色

namespace MvcWebRole1 
{ 
    public class WebRole : RoleEntryPoint 
    { 
     private static List<UserContext> Users = new List<UserContext>(); 

     public override bool OnStart() 
     { 
      Task.Factory.StartNew(OnStartWebSocketServer, TaskCreationOptions.LongRunning); 
      return base.OnStart(); 
     } 

     private void OnStartWebSocketServer() 
     { 
      var aServer = new WebSocketServer(5004, IPAddress.Any) 
      { 
       OnReceive = OnReceive, 
       OnSend = OnSend, 
       OnConnect = OnConnect, 
       OnConnected = OnConnected, 
       OnDisconnect = OnDisconnect, 
       TimeOut = new TimeSpan(0, 5, 0) 
      }; 
      aServer.Start();   
     } 

我目前仍在尝试本地调试,但无法连接到服务器,我在Chrome调试器中获得Unexpected response code: 200

有什么方法可以检查服务器是否正在运行显示控制台?这甚至是一个好方法吗?我对Azure和网络套接字完全陌生,并且仍在尝试学习基础知识,所以如果我没有检查一些基本设置,请原谅我。

编辑: 正如桑德里诺所建议的,我已经检查了网络角色的终点。我已将所有内容都切换到端口5004,希望它未被使用。但我仍然得到Windows Azure Tools: Warning: Remapping private port 5004 to 5005 in role 'MvcWebRole1' to avoid conflict during emulation.。我也为这些端口在我的防火墙上添加了一个例外,但仍然没有任何效果。

+0

您已经添加了81端口的输入端点到您的Web角色在webrole.cs指定的端口网络套接字服务器? – 2013-02-14 13:03:22

+0

我现在做了,但仍然是同样的错误。在输出中,我得到'将角色'MvcWebRole1'中的专用端口81重新映射到82,以避免在仿真过程中发生冲突。所以我改变了我的客户端端口,但仍然是相同的错误:/ – Matt 2013-02-15 08:54:51

+0

@SandrinoDiMattia我想通过您的意见,如果你写一个答案,我会接受它。 – Matt 2013-02-15 10:27:21

回答

1

我想出了问题所在。我打开的端点是HTTP,而Web套接字则通过TCP工作。为了解决这个问题,必须有:

  • 使用http的网站的一个端点。
  • 另一个端点使用TCP和