on 04-16-2009 5:41 AM
CrystalReport2008評価版をVS2005にインストールしてWebアプリを作成し、CrystalReportViewerでデータを表示、印刷を行います。
このときCrystalReportViewerを表示し、コントロールの印刷アイコンを押すと
通信エラーが発生しました。印刷は停止されます。
というダイアログが出ることがあります。
プログラムとしてはサンプルではPage_LoadでCrystalReportViewerにデータを再セットしているが、CrystalReportViewerのLoadやNavigateメソッドでデータの再セットを行っています。
しかし、データが多く印刷枚数が20枚以上のとき最初の印刷で上記のエラーが発生することがあります。
そこで、この掲示板をみるとCrystalReportViewerのUnloadメソッドで明示的にCloseやDisposeを行っている例がみられたので、ためしにUloadメソッドでCrystalReportViewerをDisposeするよう実装してみると上記のエラーが発生しなくなりました。
ちなみにタスクマネージャのプロセスをみるとUnloadのDispose実装前は印刷を繰り返すとASP.NETがどんどんメモリを消費していったのに、UnloadのDispose実装後は適時メモリ解放が行われ、メモリ消費があるピークまでに抑えられるようになりました。
よって、CrystalReportViewerを使用する場合はUnloadで明示的にDisposeする必要があると思われますが、サンプルをみてもその例はなく、これで正しいのか確証がもてません。
CrystalReportViewerのUnloadで明示的にDisposeすべきなのか教えてください。
はい、その通りです。明示的に Dispose してください。
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
87 | |
10 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.