3

使用 windows azure 服务总线作为背板时,我在连接 SignalR 时遇到随机问题。调试它的问题是它似乎是随机发生的(没有任何代码更改),但是当它确实发生时,它需要一段时间才能消失。我通常会尝试关闭 Visual Studio、重新启动、切换到长轮询、关闭 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 一切正常,但是有了它,我会遇到各种问题,要么它没有连接,要么它试图使用 websockets,即使指定了 longPolling(这会导致它失败)。

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 回答