NetScaler/IIS: 413 实体太大

NetScaler/IIS: 413 Entity Too Large

我遇到一个问题,每当我通过 Citrix NetScaler post/put JSON 我们的服务器 运行 IIS 7.5 时,我都会收到一个 413 请求实体太大的问题。

我们尝试将 aspnet:MaxJsonDeserializerMembers 设置为 30000、40000 和 512000,如下所示:

<appSettings>
  <add key="aspnet:MaxJsonDeserializerMembers" value="xxx" />
</appSettings>

以及设置 <jsonSerialization maxJsonLength="xxx"/>

但没有任何解决方案。

在我们没有 Citrix NetScaler 的本地测试环境中设置 aspnet:MaxJsonDeserializerMembers 工作正常。

NetScaler 中是否有任何我应该知道的设置?或者是否有一些 IIS 设置我也必须注意,考虑到这在我们的本地测试环境中有效,我倾向于后者,但我不想所有基础隐蔽。


编辑:经过进一步调查,似乎 NetScaler 确实是来源,因为我们可以从 NetScaler 后面 post 到 API。

事实证明,它实际上是两种产品的结合。

我们在内部使用 SSL 和客户端证书,这意味着我们需要配置一个名为 "uploadReadAheadSize"

的 IIS 属性

http://forums.asp.net/t/1702122.aspx?cannot+find+uploadReadAheadSize+in+applicationHost+config+in+IIS7+5

这是在主机配置中或通过 IIS 管理器完成的。

...
<system.webServer>
 <serverRuntime uploadReadAheadSize="{BYTES}" />
</system.webServer>
...

我们现在使用了 10 MB = 10485760 字节,这表明足够了。由于默认为 48KB,您可能会很快达到这个值。