2013-11-22 14 views
9

Signalr hat meinen Hub nicht geladen werden:SignalR: Fehler beim Laden des Hub

SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'></script>. 

ich app.MapSignalR(); in startup configuration nenne.

Ich habe zu meinem cshtml:

<script src="~/Scripts/jquery-1.9.1.js"></script> 
<script src="~/Scripts/jquery.signalR-2.0.0.js"></script> 
<script src="~/signalr/hubs" type="text/javascript"></script> 

<script> 

    $(document).ready(function() { 
     window.hubReady = $.connection.hub.start(); 
    }); 

</script> 

Antwort

7

Vergewissern Sie sich Ihre Startklasse dieses Attribut hat:

[assembly: OwinStartup(typeof(MyStartupClass))] 

Sie Ihre Owin Startklasse als auch in Ihrer web.config festlegen:

<appSettings> 
    <add key="owin:appStartup" value="MyNamespace.MyStartupClass" /> 
</appSettings> 
+0

Jetzt erhalte ich auch: GET http: // localhost: 18937/signalr/Hub 500 (Internal Server Error) – daniel

+0

Versuchen, diese zu Ihrem web.config: '< httpRuntime targetFramework = "4.5" /> ' –

+0

ist schon da. Ich habe auch die Signaler nuget Pakete entfernt und hinzugefügt, aber ohne Erfolg – daniel

8

Besuchen Sie Ihre Website, ex http://localhost/signalr/hubs, und sehen Sie, ob Sie dort eine bessere Fehlerbeschreibung erhalten können . Mein Problem war, dass ich eine generische Methode in meinem Hub hatte.

public void Update<T>(T objectToUpdate) where T : class 
1

Vergewissern Sie sich auch in Ihrer Startup-Klasse hinzuzufügen:

app.MapSignalR(); 

gelöst mein Problem

0

Server muss wissen, wo Ihre Startklasse

Eine Option ist, ist wie Rob schrieb:

[assembly: OwinStartup(typeof(MyStartupClass))] 

Aber es gibt noch andere Möglichkeiten, die Ihren Anforderungen entsprechen. Von Microsoft Docs (docs.microsoft.com/en-us/aspnet/core/fundamentals/startup):

Alternativ können Sie auch eine feste Start Klasse definieren, die unabhängig von der Umgebung verwendet wird, durch UseStartup aufrufen. Dies ist der empfohlene Ansatz.

Beispiel:

public class Program 
    { 
     public static void Main(string[] args) 
     {  
      BuildWebHost(args).Run(); 
     } 

     public static IWebHost BuildWebHost(string[] args) => 
      WebHost.CreateDefaultBuilder(args) 
       .UseStartup<Startup>() 
       .Build(); 
    } 
Verwandte Themen