Ich habe eine ASP.NET-Webanwendung mit einer einfachen HTML-Seite und etwas JavaScript für die Kommunikation über SignalR. Das funktioniert gut. Jetzt versuche ich, aus einem anderen Projekt eine Methode auf dem Hub zu nennen (in der gleichen Lösung) und durch den .NET Signalr Client-API verwendet:SignalR 2.1.0: Die Verbindung wurde nicht hergestellt
var connection = new HubConnection("http://localhost:32986/");
var hub = connection.CreateHubProxy("MessageHub");
connection.Start();
hub.Invoke("SendMessage", "", "");
Die letzte Zeile verursacht InvalidOperationException: The connection has not been established.
Aber ich bin in der Lage zu verbinden zum Hub von meinem JavaScript-Code.
Wie kann ich mithilfe von C# -Code eine Verbindung zum Hub herstellen?
UPDATE
In dem Moment, diesen Beitrag nach dem Schreiben habe ich versucht, .Wait()
hinzuzufügen und es funktionierte! So wird dies tun:
var connection = new HubConnection("http://localhost:32986/");
var hub = connection.CreateHubProxy("MessageHub");
connection.Start().Wait();
hub.Invoke("SendMessage", "", "");
Dritte Option: 'ContinueWith'. Dies ist im Wesentlichen die Art und Weise, wie es auf der Client-Seite getan wird, also fügt es ein bisschen Konsistenz zwischen JS und C# Verwendungen hinzu. – Corey