2012-02-28 5 views
0

JSONが正常に返されるVB.net Webサービスがあります。応答が一定のサイズに達すると、クライアントブラウザはサーバーが接続を閉じてデータを送信していないことを示します。これは、IE、Chrome、またはFirefoxを使用する場合に当てはまります。魔法のサイズは約16383レコード、つまり約1.13MBのデータと思われます。私はこれがWebサービスにとってはやや大きめであることを知っていますが、今のところこれと一緒に行ってください。vb.net Webサービスから大きな応答を送信すると接続が切断される

接続が閉じられただけです。つまり、サーバーからの500その他のエラーではありません。また、IIS 7.5とASP.net開発サーバーでIDEから同じ動作が見られます。

firebug、fiddler、およびwiresharkを使用すると、すべてサーバーが接続を終了しているように見えます。

デバッグモードを使用してIDEでこの問題が発生する可能性があるので、サービスを実行してサービスが呼び出され、dbを呼び出し、すべてのレコードを正しく取得してから正常に終了することがわかります。私はこれもデータの問題ではないことを確認しました。

追跡しようとするために、私は

ウェブサービスを実行して、Trace.axdは200として結果を示して、私のsystem.webにこのPARAMを追加したので、それは思われるそのWebサーバー幸いですが、接続はまだ閉じています。しかし、この痕跡はあまり詳細を示していません。

サーバーまたはクライアントがこのような接続を閉じる理由がありますか。この方法でIISを使用している既知の応答サイズ制限はありますか?これをより良く追跡する方法はありますか?

ありがとうございました。

+0

あなたはそのサイズを確認してタイムアウトしても問題ありませんか? – stark

+0

こんにちは、タイムアウトは間違いありません。 16382 records work、> = 16383しないでください。また、DBクエリは2〜3秒で実行されます。 – user1236775

答えて

1

私はこれを理解したと思います。私が問題を発見した方法は、WCFトレースを介してです:msdn.microsoft.com/en-us/library/ms733025.aspx。それは私にこのエラーを与えていました:オブジェクトグラフで直列化または非直列化できる項目の最大数は '65536'です。オブジェクトグラフを変更するか、MaxItemsInObjectGraphクォータを増やします。だから、私はそれがMaxItemsInObjectGraphと問題を解決したと言ったことをやっただけです。私は16383項目すべてが3つのフィールドを持っているので、数学がどのように機能するのかは分かりません。そのため、49149個のオブジェクトが必要です。この問題を解決しました。

関連する問題