3

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 を使用しようとする (失敗する) というあらゆる種類の問題が発生します。

4

1 に答える 1

0

構成を確認してください。

string connectionString = "(接続文字列)"; var config = new ServiceBusScaleoutConfiguration(connectionString, "YourAppName") { TopicCount = 3, MaxQueueLength = 50 }; GlobalHost.DependencyResolver.UseServiceBus(config);

http://www.asp.net/signalr/overview/performance/signalr-performance#scaleout_metrics

于 2014-10-21T08:17:53.457 に答える