4

私は奇妙なエラーを経験しています(それほど奇妙ではありません、私が知らないかもしれないいくつかの最大長の制限のためだと思います)。私は、従業員向けのカスタム検索サービスを提供するカスタムサーバーコントロールに取り組んでいます。従業員が正常に検索されたら、jsonのWCFサービスからオブジェクト全体(リスト)をフェッチし、文字列を非表示フィールドに保持し、コードビハインドをポストバックしてjson文字列をフェッチしてオブジェクトに逆シリアル化します。現在、最大2000個のオブジェクトが問題なく機能していましたが、検索条件が2000を超えてフェッチを開始すると、次のエラーが発生し始めました。

Uncaught Sys.WebForms.PageRequestManagerServerErrorException: Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was: 0 

コードもデバッグしましたが、c#コードは呼び出しをキャッチしていませんでした。また、オブジェクトのjson文字列を複数の非表示フィールドに保持し、それぞれがjson文字列に1000レコードを持つようにしました。しかし、それでもエラーは発生し続けます。これは、フォームに最大サイズのある種の制限があることを示しています。この問題の解決策を得ることができますか、それともコードビハインドにIDを送信し、そこでサービスからオブジェクトをフェッチする必要がありますか?実際には、サービスURLは動的であると想定されており、ホストアプリケーションがそれを提供するので、C#レベルでサービスバインディングを導入しないようにしています(あなたはその考えを理解していると思います)。

4

2 に答える 2

5

ASP.NETには最大リクエストサイズがあります。ドキュメントによると、デフォルトでは4MBです。その制限に達している可能性があると思われる場合は、<system.web>タグ内のweb.configファイルに次を追加することで制限を増やすことができます。

<httpRuntime maxRequestLength="x">

ここで、xはキロバイト単位の望ましい最大値です。したがって、たとえば、10240は10MBになります。

于 2013-03-26T15:51:20.727 に答える
1

マッピングのために大量のデータをやり取りしているときにこの問題が発生しました。データが大きくなりすぎたため、データが失われていました。web.configにいくつか変更を加えました。

 <appSettings>    
     <add key="aspnet:MaxHttpCollectionKeys" value="5000" />
     <add key="aspnet:MaxJsonDeserializerMembers" value="5000" />
</appSettings>
于 2013-03-26T15:54:01.910 に答える