2012-11-22 58 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

相關問題