使用 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(这会导致它失败)。