サーバー上のASP.NETアプリケーションが数日間実行した後にGDI +例外をスローし始めます。サーバーを再起動すると、すべてが正常に動作してから数日後に突然この例外が再び発生します。最初に発生した後は、再起動するまで、PNGイメージを保存しようとするたびに発生します。PNG形式で画像を保存するときのGDI +例外
JPEGで画像を保存しようとすると、正常に動作します。
私は私のプロジェクトからこのコードを実行すると、それは失敗します。もう一度
var path = @"C:\Project\images\logo.png";
var image = Image.FromFile(path);
using (var ms = new MemoryStream())
{
image.Save(ms, ImageFormat.Png); // Fails here on GDI+ exception.
//image.Save(ms, ImageFormat.Jpeg); // JPEG works somehow
}
を:私は、リモートデスクトップを再起動し、このコードを実行すると、それは数日間働き、いくつかの瞬間に突然失敗を開始何度も。
私が試した:
を同じコードでコンソールアプリケーションを作成し、プロジェクトがあるRDPでそれを実行します。それはうまくいった!
私はこのトピックを読んだ10個以上の記事で示唆されたコードのさまざまなバリエーションがたくさんあります。
GCI.Collect() - ヘルプなし。
書き込み権限を持つすべてのフォルダをチェックしました(おそらくIISに何かがありますか?)。
その他。
突然何かによって突然変化し、何ができるのか理解できないと思う。
「Image img = Image.FromStream(new MemoryStream(File.ReadAllBytes(path)))」を使ってみてください。 http://stackoverflow.com/questions/788335/why-does-image-fromfile-keep-a-file-handle-open-sometimes –
イメージフォーマットは本当の理由ではありません。おそらく、オリジナル(png)を上書きしようとします。 [here](http://stackoverflow.com/questions/37736815/overwrite-image-picturebox-in-c-sharp/37741101?s=1|5.7472#37741101) – TaW
を参照してください。 – Evk