【问题标题】:Azure SignalR Error: (429) Too Many RequestsAzure SignalR 错误:(429) 请求过多
【发布时间】:2019-10-04 19:35:36
【问题描述】:

我正在将 Azure SignalR 与 Asp.Net MVC API(使用 .net 框架而不是 .net 核心)项目结合使用。我永远无法连接到 Azure 的 SignalR 服务(尝试了任何可能的配置),而当 Signalr 自托管时一切正常。

当我启用 CLR 异常时(通过检查公共语言运行时异常下的所有内容,在异常设置窗格下)我不断收到以下两个错误:

1. System.Net.WebException: '远程服务器返回错误:(429) Too Many Requests.'

2。 System.Net.WebSockets.WebSocketException:'无法连接到远程服务器'。 内部异常 WebException:远程服务器返回错误:(429) Too Many Requests。

我正在使用 SignalR 免费层,但也尝试使用标准层并最终得到相同的结果。

我一直在 Azure 门户的“概述”选项卡下检查“连接(最大)”图表,并一直观察“服务器 20,客户端 0”。

我第一次收到错误时,我以为我真的尝试连接太多次并达到最大连接/尝试并放弃尝试。一段时间后(大约 24 小时),我只尝试了 3 次,仍然得到相同的异常(429 - 请求太多)。

这是我的配置(Startup.cs):

app.MapAzureSignalR(
                "/signalr",
                GetType().FullName,
                new HubConfiguration
                {
                    // tried all combinations of boolean values below.
                    EnableDetailedErrors = true,
                    EnableJSONP = true,
                    EnableJavaScriptProxies = true
                }, options =>
                {
                    options.ConnectionCount = 5; // tried increasing and decreasing that number.
                    options.ConnectionString = "<my connection string from azure portal signalr service>";
                    options.AccessTokenLifetime = TimeSpan.FromDays(1); // tried even removing.
                }
            );

此代码在我的本地机器上运行,而不是在 Azure 的 AppService 上。但是,它也不会在 AppService 上运行。因为在本地机上调试比较容易,所以一直在本地机上试。

我在互联网上进行了搜索,但没有找到与我的问题相关的任何内容。

我该如何解决这个问题?

编辑: 我安装了以下软件包。

<package id="Microsoft.AspNet.SignalR" version="2.4.1" targetFramework="net472" />
<package id="Microsoft.AspNet.SignalR.Core" version="2.4.1" targetFramework="net472" />
<package id="Microsoft.AspNet.SignalR.JS" version="2.4.1" targetFramework="net472" />

【问题讨论】:

  • 嗨,你能解决这个问题吗?我有挂起的服务器连接,没有关闭,所以出现 429 错误。
  • 不,很遗憾。我没有为 SignalR 使用 .net 核心,因为我没有更多时间花在上面。
  • 对于未来的用户,我分享链接Troubleshooting guide for Azure SignalR Service common issues

标签: c# azure signalr azure-signalr


【解决方案1】:

已编辑

您的服务器端定义了多少个hubs? AspNet SignalR 的服务器连接数(hub count + 1) * options.ConnectionCount


对于免费实例,有两个维度的限制:

  1. 并发连接数
  2. 每天发送的消息总数

标准层没有消息限制。

Here 是 Azure SignalR 服务的定价详细信息。 Here 详细解释了消息和连接是如何计算的。

【讨论】:

  • 不要这样做。这与问题无关。
  • @JustWork 你有多少个集线器? AspNet SignalR 的服务器连接数为 (hub count +1) * options.ConnectionCount
猜你喜欢
  • 1970-01-01
  • 2020-05-26
  • 1970-01-01
  • 2020-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-10
相关资源
最近更新 更多