我使用过 Azure SignalR 服务。它适用于测试项目,但当我嵌入到我的真实项目中时。它抛出错误(访问 token 不得超过 4K)。
访问 token 不得超过 4K。 413请求实体太大
我们在我们的项目中使用 SignalR,现在我们正在转向 Azure SignalR 服务。 我做了一个测试项目,我在其中使用了 Azure SignalR 服务,它在那里工作正常,但我将其嵌入到我的真实项目中时它会抛出错误(访问 token 不得超过 4K)。 我在 IIS 和 web.config 级别尝试了不同的解决方案,增加了消息的大小,但没有任何效果。 我检查过我的 cookie 大小小于 1k。 无法建立 Azure SignalR 服务连接。 为什么它在测试项目中有效。意思是在真实项目的情况下,它包括来 self 页面上存在的页面的 cookie 和声明。
我得到了这个东西,但它在 Asp.net 中不起作用,因为它是核心示例。
services.AddSignalR()
.AddAzureSignalR(options =>
{
options.ClaimsProvider = context => context.User.Claims;
});
我已尝试在 web.config 中进行绑定(bind),但增加消息的大小不起作用,因为它的标题级别。
<bindings>
<basicHttpBinding>
<binding name="basicHttpBinding" maxReceivedMessageSize="524288000"/>
<binding name="mexHttpBinding" maxReceivedMessageSize="524288000" />
</basicHttpBinding>
</bindings>
最佳答案
对于 ASP.NET,如果您的 Hub 没有高级身份验证(例如基于角色的身份验证),您可以使用以下命令简单地传递一个空声明。
app.MapAzureSignalR(GetType().FullName
, options => options.ClaimsProvider = context => new Claim[] {});
关于asp.net-mvc - AccessToken 不能超过 4K,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56769490/