Windows azure サービス バスをバックプレーンとして使用すると、SignalR の接続にランダムな問題が発生します。デバッグの問題は、(コードの変更なしに) ランダムに発生するように見えることですが、実際に発生すると、消えるまでに時間がかかります。私は通常、Visual Studio を閉じる、再起動する、longpolling に切り替える、iis express を閉じるなど、さまざまなことを試みますが、何が修正されているのか特定できません。おそらく、Azure サービス自体の問題です。
ログをセットアップすると、これが返されます: SignalR.ServiceBusMessageBus 情報: 0: サービス バスで 5 つのトピックをサブスクライブしています... SignalR.ServiceBusMessageBus エラー: 0: サービス バス サブスクリプションまたはトピックの作成に失敗しました: トークンプロバイダーは、' https://x-sb.accesscontrol.windows.net/WRAPv0.9/ 'へのアクセス中にセキュリティ トークンを提供できませんでした。トークン プロバイダーから返されたメッセージ: 'リモート名を解決できませんでした: 'x-sb.accesscontrol.windows.net''。
同じエラーで他の投稿を読みましたが、関連していないようです。
私の SignalR 構成は次のようになります。
GlobalHost.DependencyResolver.UseServiceBus(connectionString, "MyTopic");
var userIdProvider = new UserIdProvider();
GlobalHost.DependencyResolver.Register(typeof(IUserIdProvider), () => userIdProvider);
app.MapSignalR();
longPolling に切り替えると、一時的に機能しますが、再び失敗し始めます。SignalR は longPolling 設定を無視し始め、とにかく websockets を使用しようとします。
UseServiceBus を削除するとすぐにすべてが正常に動作しますが、それを使用すると、接続しないか、longPolling が指定されているにもかかわらず Websockets を使用しようとする (失敗する) というあらゆる種類の問題が発生します。