首页 > 解决方案 > AccessToken 不得长于 4K

问题描述

我使用过 Azure SignalR 服务。它适用于测试项目,但是当我嵌入到我的真实项目中时。它抛出错误(访问令牌不能超过 4K)。

访问令牌不得超过 4K。413请求实体太大

我们在项目中使用 SignalR,现在我们正在转向 Azure SignalR 服务。我做了一个测试项目,我在其中使用了 Azure SignalR 服务,它在那里工作正常,但我将它嵌入到我的真实项目中,它会引发错误(访问令牌不能超过 4K)。我在 IIS 和 web.config 级别尝试了不同的解决方案,增加了消息的大小,但没有任何效果。我检查了我的 cookie 大小,它小于 1k。无法进行 Azure SignalR 服务连接。为什么它在测试项目中有效。意思是在实际项目的情况下,它包括我页面上存在的页面中的 cookie 和声明。

我得到了这个东西,但它在 Asp.net 中不起作用,因为它的核心示例。

services.AddSignalR()
        .AddAzureSignalR(options =>
            {
                options.ClaimsProvider = context => context.User.Claims;
            });

我在 web.config 中尝试过绑定,但增加消息的大小不起作用,因为它的标题级别的东西。

<bindings>
      <basicHttpBinding>
        <binding name="basicHttpBinding" maxReceivedMessageSize="524288000"/>
        <binding name="mexHttpBinding" maxReceivedMessageSize="524288000" />
      </basicHttpBinding>
</bindings>

标签: asp.net-mvcsignalrazure-signalr

解决方案


我明白了原因。它的索赔问题。我的真实项目有很多索赔,因为它们的大小我的请求超过了 4k 限制。我已经使用了压缩,并且对我来说一切正常。谢谢


推荐阅读