Signalr doesn't load my hubs:
SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'></script>.
I am calling app.MapSignalR();
in startup configuration
.
I added to my 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>
Make sure your startup class has this attribute:
[assembly: OwinStartup(typeof(MyStartupClass))]
You can define your Owin startup class in your web.config as well:
<appSettings>
<add key="owin:appStartup" value="MyNamespace.MyStartupClass" />
</appSettings>
Visit your site, ex http://localhost/signalr/hubs , and see if you can get a better error description there. My problem was that I had a generic method in my hub.
public void Update<T>(T objectToUpdate) where T : class
Also make sure to add in your Startup class:
app.MapSignalR();
Solved my issue
Server has to know where your startup class is
One option is like Rob wrotes:
[assembly: OwinStartup(typeof(MyStartupClass))]
But there are other possibilies up to your requiremens. From Microsoft Docs (docs.microsoft.com/en-us/aspnet/core/fundamentals/startup):
Alternatively, you can define a fixed Startup class that will be used regardless of the environment by calling UseStartup. This is the recommended approach.
Example:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.