ページ上の私のフォームは少し大きすぎます。毎月の測定データを収集します。サンプルをご覧ください。
{
"Year":2013,
"Month":3,
"Records":[
{"Id":0,"Date":"3/1/2013","RiverSection":5,"UserNumber":56},
{"Id":0,"Date":"3/1/2013","RiverSection":7,"UserNumber":200},
{"Id":0,"Date":"3/1/2013","RiverSection":8,"UserNumber":556},
{"Id":0,"Date":"3/2/2013","RiverSection":5,"UserNumber":56},
{"Id":0,"Date":"3/2/2013","RiverSection":7,"UserNumber":200},
...
...
{"Id":0,"Date":"3/31/2013","RiverSection":7,"UserNumber":200}
}
だから私はビッグデータをAPIControllerに投稿しています。
Visual Studioデバッガサーバーを使用して、ローカルマシンで正常に動作します。しかし、コードをサーバー(IIS 6)にアップロードした後。それは500 Internal Server Error
を与えます。
サンプルデータを投稿して、文字列化されたjsonの長さを確認しました。
1つのサンプルデータセットでは、jsonの長さは5743であり、「成功」しました。しかし、jsonのサイズが17345に達すると、500 Internal Server Error
が得られます。
そこで、jsonの制限を増やしてみました。に基づく この投稿
Web.Config
:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="5000000">
</jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
しかし、それは機能していません。
次を使用して、別の答えがあります。
var serializer = new JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue;
しかし、このコードはどこに配置する必要がありますか? Global.asax
で?
IIS 6.を使用していることに注意してください。それで問題はありますか?データがWebApiアクションにヒットできるように、jsonサイズの制限を正しく増やすにはどうすればよいですか?
助けてくれてありがとう。
aspnet:MaxJsonDeserializerMembers
のappSettings
の下にweb.config
を追加してみてください
<add key="aspnet:MaxJsonDeserializerMembers" value="20000"/>