我正在将 Azure SignalR 与 Asp.Net MVC API(使用 .net 框架而不是 .net 核心)项目一起使用。我永远无法连接到 Azure 的 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" />