@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

ReportViewerでページサイズが肥大化していく

1
投稿者投稿内容
Furi2
ベテラン
会議室デビュー日: 2004/10/28
投稿数: 74
お住まい・勤務地: N.Hollywood/Agoura Hills
投稿日時: 2007-06-19 10:18
いつもお世話になっています。

現在ReportViewerコントロールの奇妙な現象に頭を悩ませています。ページ・ナビゲーションを使ってレポート内のページを行ったり来たりすると、15ページを過ぎたあたりから段々とレスポンスが遅くなり、最後はHttpException: Maximum request length exceededというエラーになります。

このエラーは、サーバに返すデータ量が規定以上の場合に発生するということだったので、どれくらいのデータ量をビューステートが保持しているのか概算しようと思い、それぞれのページをHTMLテキストとして保存して比べたところ、以下のようになっていました。

ページ     ファイルサイズ(kb)
page_01.txt : 351
page_02.txt : 678
page_03.txt : 351
page_04.txt : 678
page_05.txt : 352
page_06.txt : 678
page_07.txt : 353
page_08.txt : 681
page_09.txt : 359
page_10.txt : 693
page_11.txt : 383
page_12.txt : 741
page_13.txt : 770
page_14.txt : 535
page_15.txt : 1,154
page_16.txt : 1,701
page_18.txt : 2,690
page_19.txt : 4,773
page_19.txt : 8,834
page_20.txt : 16,663
page_21.txt : 33,410

ページ移動が15回を超えたところあたりから、ページサイズが約倍になっていきます。同じページ間を矢印を使って行ったり来たりしているだけなのですが。。よくよくビューステートのエンクリプテッド・データを見ると、途中まで普通のビューステートのデータのなのですが、ある部分を越えてから、

BgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIHAgoCCwIMAg0CBgIH...

というデータが、延々延々と何メガバイト分も続いていることが判明しました。これは新たにレポートを生成すると、違ったコードになるみたいですが、同じコードが繰り返されているのは共通しているようです。

サイズが大きくても、実際にブラウザに表示されるデータは、普通に1ページ分です。ページナビの矢印を早くクリックしても、しばらく待ってからクリックしても結果は同じのようです。

さらによくわからないのは、15ページあたりになるまで、この現象が起こらないことです。

どなたか似たような経験があった方はいらっしゃいますでしょうか。

尚、ReportViewerはRemortモードで、SQL Server 2005 のリポート・サービスを使っています。

どうかよろしくお願いします!



[ メッセージ編集済み 編集者: Furi2 編集日時 2007-06-19 10:21 ]
1

スキルアップ/キャリアアップ(JOB@IT)