2012-11-22 31 views
1

我自主办我的C#WinForms应用程序内的SignalR集线器服务器:SignalR跨域和IIS 7.5路由器只能在服务器上本地工作,如何在外部访问它?

 string url = "http://localhost:8081/"; 

     m_signalrServer = new Microsoft.AspNet.SignalR.Hosting.Self.Server(url); 

     // Map the default hub url (/signalr) 
     m_signalrServer.MapHubs(); 

     // Start the SignalRserver 
     m_signalrServer.Start(); 

我的ASP.NET Web应用程序充当SignalR集线器JavaScript客户端:

<script type="text/javascript" src="/Scripts/jquery.signalR-1.0.0-alpha2.min.js"></script> 
<script type="text/javascript" src="http://localhost:8081/signalr/hubs"></script> 
<script type="text/javascript" language="javascript"> 
    $(document).ready(function() { 
     $.connection.hub.url = 'http://localhost:8081/signalr' 

     var myHub = $.connection.myHub; 

     $.connection.hub.error(function() { 
      console.log("Error!"); 
     }); 

     $.connection.hub.start() 
     .done(function() { 
      console.log("Connected!"); 
     }) 
     .fail(function() { console.log("Could not connect!"); });   
    }); 
</script> 

此代码工作正常时,我使用服务器的网络浏览器,因为它可以访问http://localhost:8081/signalr/hubs

但是,当您通过http://serverip在外部浏览网站时,SignalR因为JQuery脚本正在查找http://localhost:8081/signalr(我相信它在本地计算机上查找)而失败。

我已经改变了:

$.connection.hub.url = 'http://serverip:8081/signalr' 

,我启用了8081网站的浏览,并且可以通过浏览http://serverip:8081的网站。但是,浏览到http://serverip:8081/SignalR/Hubs找不到从http://localhost:8081/siganlr/hubs可用的集线器文件。

而且,作为一个测试我启用SignalR通过App_Start文件夹中的ASP.NET Web应用程序中 - > RegisterHubs.cs文件:RouteTable.Routes.MapHubs();

这样做可以让我浏览到http://serverip:8081/signalr/hubshttp://serverip/signalr/hubs,我可以看到集线器由ASP.NET网站生成。这不是我想要的,因为这不是我从C#WinForms应用程序托管的中心。

再次浏览到http://serverip:8081/signalr/hubs未找到http://localhost:8081/signalr/hubs上存在的信号器或集线器文件。有谁知道我可以如何让这个文件可用于我的ASP.NET Web应用程序,以便我可以让SignalR在外部工作?

编辑:我忘了提及8081是在服务器防火墙上打开。

回答

2

将其更改为:

string url = "http://*:8081/"; 

m_signalrServer = new Microsoft.AspNet.SignalR.Hosting.Self.Server(url); 
+0

感谢信。这已经解决了我的问题。经过大量搜索,昨天我还发现这个帖子与你的答案以及我遇到的问题有关:https://github.com/SignalR/SignalR/issues/684(以防其他人遇到此问题)。 – Mausimo

相关问题