0

Citrix NetScaler を介して IIS 7.5 を実行しているサーバーに JSON をポスト/プットするたびに、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 の背後から API に投稿できるため、NetScaler がソースであることは確かです。

4

1 に答える 1

1

結局のところ、それは実際には 2 つの製品の組み合わせでした。

内部的には、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 に答える