C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

microsoftreportviewer 2012のメモリ

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■83950 / inTopicNo.1)  microsoftreportviewer 2012のメモリ
  
□投稿者/ 高橋 (2回)-(2017/04/26(Wed) 16:36:15)

分類:[.NET 全般] 

開発環境は visual studio 2013 community editionです
report viewer2012 ランタイム を使用しています
 
peportviewerでローカルレポートを作成するたび、メモリの使用量が増えてき、
out of memoryのエラーに遭遇します。

gc.collect()
GC.WaitForPendingFinalizers()
LocalReport.ReleaseSandboxAppDomain()

も効果がありません。
reportviewer2012 ランタイムのメモリの開放の仕方がわかる方ご教授なにとぞよろしくお願いします


引用返信 編集キー/
■83952 / inTopicNo.2)  Re[1]: microsoftreportviewer 2012のメモリ
□投稿者/ shu (1013回)-(2017/04/27(Thu) 08:00:00)
No83950 (高橋 さん) に返信

GCで解放される状態になっていないものが残っているのではないでしょうか?
このような状態でGCを行うと解放されにくくなります。
どうしても見つからないようであればレポート部分を別Exeにして
レポート出力時にプロセス起動してプレビュー、印刷が終了したらプロセスを
終了するようにするのもいいかもしれません。
引用返信 編集キー/
■83953 / inTopicNo.3)  Re[2]: microsoftreportviewer 2012のメモリ
□投稿者/ 高橋 (3回)-(2017/04/27(Thu) 12:07:18)
No83952 (shu さん) に返信
> ■No83950 (高橋 さん) に返信
>
> GCで解放される状態になっていないものが残っているのではないでしょうか?
> このような状態でGCを行うと解放されにくくなります。
> どうしても見つからないようであればレポート部分を別Exeにして
> レポート出力時にプロセス起動してプレビュー、印刷が終了したらプロセスを
> 終了するようにするのもいいかもしれません。

ご示唆ありがとうございます。
別Exeにするのは敷居が高く不勉強な私には無理かもしれません。

app.configに

<runtime>
<NetFx40_LegacySecurityPolicy enabled="true"/>
</runtime>
を追加して、

LocalReport.ExecuteReportInCurrentAppDomain(AppDomain.CurrentDomain.Evidence)
非推奨

を実行すれば、開発環境ではメモリが開放されるのですが、
発行したappは動きませんでした。(.NetFramework 4.5)

reportviewer2012の仕様でしょうか?

とにかくご示唆ありがとうございます。



引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ