SignalR:加载集线器时出错

时间:2013-11-22 12:10:02

标签: c# asp.net-mvc signalr signalr-hub

Signalr无法加载我的集线器:

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

我在app.MapSignalR();中呼叫startup configuration

我添加到我的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>

4 个答案:

答案 0 :(得分:8)

确保您的启动类具有以下属性:

[assembly: OwinStartup(typeof(MyStartupClass))]

您也可以在web.config中定义Owin启动类:

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

答案 1 :(得分:8)

访问您的网站,前http://localhost/signalr/hubs,看看您是否可以在那里获得更好的错误说明。我的问题是我的中心有一个通用的方法。

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

答案 2 :(得分:1)

还要确保添加您的Startup类:

app.MapSignalR();

解决了我的问题

答案 3 :(得分:0)

服务器必须知道启动类的位置

一个选择就像Rob wrotes:

[assembly: OwinStartup(typeof(MyStartupClass))]

但是还有其他可能性需要你的。来自Microsoft Docs(docs.microsoft.com/en-us/aspnet/core/fundamentals/startup):

  

或者,您可以通过调用UseStartup来定义将在不考虑环境的情况下使用的固定Startup类。   这是推荐的方法。

示例:

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

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