2013-07-18 31 views
2

我有我整合樞紐到現有的MVC應用程序,現在我已經安裝了集線器像這樣:SignalR路由問題,獲得200好,但響應空

routeTable.MapHubs("myapp/chat/room", new HubConfiguration { EnableCrossDomain = true, EnableDetailedErrors = true, EnableJavaScriptProxies = true }); 

然後在客戶方我連接像這樣:

var connection = $.hubConnection(SystemConfiguration.ServiceUrl + "/myapp/chat/room", { useDefaultPath: false }); 
var hub = this.Connection.createHubProxy("ChatHub"); // Same name as on the hub attribute 
connection.start().done(function(){ /* do stuff */}); 

然後我看到HTTP請求,像這樣:

http://localhost:23456/myapp/chat/room/negotiate?_=1374187915970

響應頭

Access-Control-Allow-Cred... true, true 
Access-Control-Allow-Head... content-type, x-requested-with, * 
Access-Control-Allow-Meth... GET, POST, PUT, DELETE, OPTIONS 
Access-Control-Allow-Orig... http://localhost:34567, http://localhost:34567 
Access-Control-Max-Age 10000 
Cache-Control no-cache 
Content-Length 420 
Content-Type application/json; charset=UTF-8 
Date Thu, 18 Jul 2013 22:52:18 GMT 
Expires -1 
Pragma no-cache 
Server Microsoft-IIS/8.0 
X-AspNet-Version 4.0.30319 
X-Content-Type-Options nosniff 

請求頭

Accept application/json, text/javascript, */*; q=0.01 
Accept-Encoding gzip, deflate 
Accept-Language en-US,en;q=0.5 
Content-Type application/x-www-form-urlencoded; charset=UTF-8 
Host localhost:23456 
Origin http://localhost:34567 
Referer http://localhost:34567/myapp/chat?chatId=1764a2e3-ff6f-4a17-9c5f-d99642301dbf 
User-Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0 

的響應,雖然不包含體,它有一個200點的狀態,但...我調試服務器上與集線器方法從來沒有擊中。在這種情況下,唯一不標準的事情就是我有一個自定義的CORS HttpModule,它可以攔截流量並追加CORS所需的頭文件,正如您在響應中看到的一樣,所以不確定這是否會以某種方式混淆了SignalR的CORS支持。無論如何,我可以看到HttpModule被擊中,所以它經過那裏很好,但在那裏和中心之間有點失落。

試着用搜索引擎,但對這個話題沒有太多信息...

+0

瀏覽器控制檯中是否有任何javascript錯誤記錄? –

+0

沒有。上面的請求在firefox控制檯中顯示爲紅色,但我認爲這是因爲沒有內容或其他內容,但沒有實際的JS錯誤。 – Grofit

回答

0

這個問題似乎是記在我的CORS在HTTP模塊處理水平,它必須以某種方式與SignalR衝突......如果我把支票在模塊來查看該URL是否包含「聊天/聊天室」,如果需要的話只是忽略該請求,那麼它可以正常工作,但它感覺像是一個黑客,但至少現在它可以工作。