2011-07-12 11 views
0

ウィンドウサービスがテキストファイルを生成し、処理中に上記のフォルダに配置されました突然サービスが停止してこのエラーがスローされますウィンドウサービスでバルクプロセスを実行すると、このメモリ例外エラーがスローされてスタックアップしました

エラーテキスト: 'System.OutOfMemoryException'型の例外がスローされました。

この問題から外れ出てくるか

...

注:それは2000年のボリュームのために行っていた - 5000のボリュームについて意味するとき受信していた3000ファイル

問題...上記のエラー受信中

+0

IISでホストされているWCFサービスの1つでも、同様の動作が発生しています。ファイルストリームはすべてステートメントを使用して処理されました。(廃棄されました)IISワーカープロセスはメモリを最適化したり、タイムリーに正しい割り当てを解除したりするなど、このような状況では魅力的ではないと述べました。状況を解決するためにWindowsサービスに移行し、最新の問題は発生しませんでした。おもしろいことに、Windowsサービスと同様の動作が発生しています... – Smudge202

+0

FileStreamを破棄していませんか? – shenhengbin

答えて

0

通常、メモリ不足例外は適切に処理されていないことを示します。 IDisposableを使用しているものは、完了した時点で廃棄されていることを確認してください。絶対に必要とするよりも長い間、これらのリソースを保持しているわけではありません。

これらの問題を追跡する最善の方法は、メモリプロファイリングツールを使用することです。一般的な考え方は、メモリ使用量のスナップショットを取って比較し、メモリに保持すべきものが見つからないようにすることです。私はDotTraceANTS profiler.Net Memory Profilerを含むいくつかのツールを使用しましたが、それらはすべて様々な長所と短所を持っていますが、一般的にデルタを見ることができるようにスナップショットを比較する方法を提供します。もっと重要なことに、彼らはすべて無料の試用版を持っているので、あなたは問題を掘り下げてインストールすることができます。

StackOverflow Questionがあり、様々なツールに関するいくつかの良い情報を提供する必要があります。

関連する問題