Signalr persistente Verbindung, die 404 für Echo/Verhandlungen gibt
-
26-10-2019 - |
Frage
Ich habe Probleme mit dem grundlegendsten Beispiel https://github.com/signalr/signalr/wiki/quickstart-persistent-connections. Ich bekomme "404 auf Echo/Verhandlung"
Lösung
Das Beispiel ist veraltet. Es liegt daran, dass die Standard-MVC-Project-Anrufe RegisterRoutes (routetable.Routes);Sie müssen die MapConnection nach dem in den RegisterRoutes verschieben Routes.ignoreroute ("{Ressource} .AXD/{*pathInfo}"; aber vor anderen Routen.
ich hoffe das hilft
Andere Tipps
Ich habe genau den gleichen Fehler bekommen, als ich versuchte, die grundlegende persistente Verbindungsprobe zu implementieren, und es dauerte eine ganze Weile, bis ich feststellte, dass es an einer Versionsfeindlichkeit für Newtonsoft.json, das Problem und die hier beschriebene Lösung zurückzuführen war:
https://github.com/signalr/signalr/issues/195
Das heißt, fügen Sie einen Abschnitt wie: hinzu:
<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>
zu Ihrem web.config.
Ich weiß nicht, warum dieser Abschnitt für mich fehlte, da er soweit ich weiß, dass er automatisch von Nuget hinzugefügt werden sollte, vielleicht etwas mit Visual Studio 11 Beta zu tun. Wie auch immer, es war die Lösung für mein Problem.
Es gibt zwei Schritte:
1 in web.config
Regel JSON hinzufügen oder bearbeiten
<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
Neue hinzufügen:
RouteTable.Routes.MapConnection<ChatConnection>("negotiate", "/chat");
In der Methode protected void Application_Start(){}
Viel Glück !