2012-02-16 9 views

risposta

18

L'esempio non è aggiornato. È perché il progetto MVC predefinito chiama RegisterRoutes (RouteTable.Routes); Dovete spostare il MapConnection verso l'interno le RegisterRoutes, dopo la routes.IgnoreRoute ("{resource} axd/{* pathinfo}"; ma prima di qualsiasi altre vie

Spero che questo aiuta

.
+1

Ho provato, ma sto ancora ottenendo un 404. –

+0

Ho provato ad implementare SignalR utilizzando lo stesso campione ma ho riscontrato lo stesso problema. Il/echo/negotiate è ancora in quarantena ... Qualcuno può aiutarti? – KevinIsNowOnline

+0

Prova a leggere di nuovo la mia soluzione, è l'ordine dei RegisterRoutes che è importante –

3

ho avuto l'esatto stesso errore quando si cerca di implementare il campione di base connessione persistente, e mi c'è voluto un bel po 'per capire che era a causa di una mancata corrispondenza versione per Newtonsoft.Json, problema e la soluzione descritta qui:

https://github.com/SignalR/SignalR/issues/195

.210

Cioè, aggiungere una sezione come:

<dependentAssembly> 
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
<bindingRedirect oldVersion="0.0.0.0-4.0.8.0" newVersion="4.0.8.0" /> 
</dependentAssembly> 

al vostro web.config.

Non so perché questa sezione mancava per me poiché per quanto ho capito dovrebbe essere aggiunto automaticamente da nuget, forse qualcosa a che fare con Visual Studio 11 beta. Ad ogni modo, era la soluzione al mio problema.

+0

grazie amico, mi ci è voluto un po 'per notarlo, se potessi darti mille punti vorrei –

+0

Pazzo, ho avuto lo stesso problema. A livello locale la mia app andava bene ma stava diventando 404 quando si chiamava signalr. Ho aggiunto questo nel mio web.config sul server e in poof: lavorando. – Kywillis

0

ci sono due fasi:
1. In web.config aggiungere o modificare regola JSON

<dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" 
publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
<bindingRedirect oldVersion="0.0.0.0-4.0.8.0" newVersion="4.0.8.0" /> 
</dependentAssembly> 


2. In Global.asax Aggiungi nuovo:

RouteTable.Routes.MapConnection<ChatConnection>("negotiate", "/chat"); 


Nel metodo protected void Application_Start(){}

Buona fortuna!

Problemi correlati