azure - 使用 Azure 服务总线时 SignalR 无法连接

标签 azure signalr azureservicebus signalr-backplane

使用 Windows Azure 服务总线作为背板时,我在连接 SignalR 时遇到随机问题。调试它的问题在于它似乎是随机发生的(没有任何代码更改),但是当它确实发生时,需要一段时间才能消失。我通常会尝试关闭 Visual Studio、重新启动、切换到长轮询、关闭 IIS Express 或任何其他操作,但无法确定似乎可以解决该问题的方法。可能是azure服务本身的问题。

我设置了日志,这是返回的内容: SignalR.ServiceBusMessageBus 信息:0:正在订阅服务总线中的 5 个主题... SignalR.ServiceBusMessageBus 错误:0:无法创建服务总线订阅或主题: token 提供程序在访问“https://x-sb.accesscontrol.windows.net/WRAPv0.9/”时无法提供安全 token '。 token 提供程序返回消息:“无法解析远程名称:'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(这会导致它失败)。

最佳答案

检查配置。

string connectionString = "(您的连接字符串)"; var config = new ServiceBusScaleoutConfiguration(connectionString, "YourAppName") { 主题数 = 3, 最大队列长度 = 50 }; GlobalHost.DependencyResolver.UseServiceBus(config);

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

关于azure - 使用 Azure 服务总线时 SignalR 无法连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23666596/

相关文章:

c# - 将 SignalR 中心移动到另一个项目

javascript - 客户端未在 SignalR 2.2 应用程序中接收消息

asp.net-core - WebSocket 未处于 OPEN 状态

azure - Kudu npm 安装失败

azure - 如何在 Azure 逻辑应用程序中调用我自己的 API(类似于 Office365 审批连接器)进行审批步骤?

azure - 如何通过 Azure ServiceBus 标准计划获得更好的性能

azure - 如果我们使用带 SessionId 的 Azure 服务总线会比不带 SessionId 慢吗?或者它们的速度相同吗

python - mktime 参数超出范围

azure - 使用 Azure 服务总线进行基于消息类型的路由

Azure AD guest 用户多重身份验证