Приложение ASP.NET на моем сервере начинает бросать исключение GDI + после запуска в течение нескольких дней. После перезапуска сервера все работает нормально в течение нескольких дней, а затем внезапно это исключение происходит снова. После первого раза это происходит каждый раз, когда я пытаюсь сохранить изображение PNG, пока я не перезапущу его снова.
Когда я пытаюсь сохранить изображение в формате 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?).
-
Далее.
Я думаю, что это должна быть какая-то конфигурация, которая внезапно меняется из-за чего-то, и я не могу понять, что это может быть.