私は長い話を短くしようと思います。
Webのハブのメソッドを呼び出したい私のアプリケーションのコアアセンブリからアプリケーション。その理由は、私がすべて最終的にコアを呼び出してイベントをトリガーする多数のアプリケーションを持っているからです(モバイルWeb、管理サイト、APIなどを考えてください)。私は、SignalRを使用して、デスクトップサイトのユーザーにイベントが発生したときに通知する必要があります。
これを急増させるために、私は4プロジェクトのソリューションを作成しました。ハブプロキシを使ったコアプロジェクト。ハブを備えたWebアプリ。ハブなしの別のWebアプリ。そして最後にコンソールアプリです。
コンソールアプリからcoreを呼び出して試してみるとプロキシを使用してハブクライアントにメッセージを送信するためには、すべてがうまくいきます。ただし、コアに呼び出してWebアプリケーションの1つからプロキシを使用しようとすると、connection.Start()の呼び出しで実行がハングします。
var connection = new HubConnection("...");
var hub = connection.CreateProxy("Spike.Hub");
connection.Start().Wait();
SignalR.ClientはWebアプリケーションのアプリケーションドメイン内から使用することを意図していませんか?コンソールアプリケーションでは期待どおりに機能するのにWebアプリケーションからは使用できないのはなぜですか?
更新: 急増したものをSignalRソースに接続し、いずれかのWebアプリケーションから実行すると、SignalR.Client.Connectionの130行目で実行がハングします。そのような接続の_syncContextはAspNetSynchronizationContextのインスタンスであり、そのPost()メソッドを呼び出すと、すべてが停止します。
回答:
回答№1の場合は10SignalR.Clientにバグがあり、見つけました:)