2009-06-17 9 views
0

ローカルのモードで実行されているいくつかのReportViewerコントロールを持つ単純なASP.NET Webフォームがあります。ページが読み込まれるたびに、各ReportViewerはレポート定義を読み込み、動的なexpression_hostアセンブリも再生成します。これは明らかに時間がかかり、非常にうまくスケールされません。 ReportViewerにレポート定義と動的なexpression_hostアセンブリをキャッシュする方法はありますか?ASP.NET ReportViewerローカルモードのパフォーマンス(expression_hostの再生成)

答えて

0

さまざまな方法を試した後、問題の最も良い解決策は、これまでレポート内からすべてのコードを削除することでした。その後、要求時間は劇的に減少しました。

+0

「すべてのコードを削除する」の詳細を教えてください。このカスタムC#/ VBコードまたは式でしたか? – andrej351

0

問題は、レポートビューアオブジェクトでリセットを呼び出すことです。レポートビューアをキャッシュする必要があります。

また、オブジェクトをデータソースとして使用する場合は、report.localreport.datasetでClearを呼び出します。

+0

リセットは呼び出されません。データソースインスタンスが各ユーザー(およびユーザー間)のページライフサイクル間で変更されるため、キャッシュが問題になります。データセットを消去することは効果がなく、問題には関係しません。 最も効率的な解決策は、新しいページ要求が発生するたびに動的再コンパイルを避けるために、レポート自体からコードを削除することでした。 –

関連する問題