Signalrがハブをロードしません:
_SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'></script>.
_
_startup configuration
_でapp.MapSignalR();
を呼び出しています。
私は自分の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>
_
スタートアップクラスに次の属性があることを確認してください。
[Assembly: OwinStartup(typeof(MyStartupClass))]
Web.configでOwinスタートアップクラスを定義することもできます。
<appSettings>
<add key="owin:appStartup" value="MyNamespace.MyStartupClass" />
</appSettings>
あなたのサイトにアクセスしてください、例 http:// localhost/signalr/hubs 、そしてあなたがそこでより良いエラーの説明を得ることができるかどうか見てください。私の問題は、ハブにジェネリックメソッドがあることでした。
public void Update<T>(T objectToUpdate) where T : class
また、スタートアップクラスを必ず追加してください。
app.MapSignalR();
私の問題を解決しました
サーバーはスタートアップクラスがどこにあるかを知っている必要があります
1つのオプションは、Robが書いたようなものです。
[Assembly: OwinStartup(typeof(MyStartupClass))]
しかし、あなたの要求に応じて他の可能性があります。 Microsoft Docs(docs.Microsoft.com/en-us/aspnet/core/fundamentals/startup)から:
または、UseStartupを呼び出すことにより、環境に関係なく使用される固定のスタートアップクラスを定義できます。これが推奨されるアプローチです。
例:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}