0

我面临一个问题,每当我通过 Citrix NetScaler 将 JSON 发布/放入运行 IIS 7.5 的服务器时,我都会收到一个 413 Request Entity Too Large 的问题。

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

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

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

但没有任何解决办法。

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

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


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

4

1 回答 1

1

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

在内部,我们使用 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,因此您可能会很快达到这个值。

于 2015-07-08T06:33:21.950 回答