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>
答案 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();
}