gpt4 book ai didi

c# - 以 PNG 格式保存图像时出现 GDI+ 异常

转载 作者:可可西里 更新时间:2023-11-01 08:24:21 25 4
gpt4 key购买 nike

我服务器上的一个 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
}

再一次:当我重新启动远程桌面并运行这段代码时,它工作了几天,然后在某个时刻突然开始一遍又一遍地失败。

我试过了:

  1. 使用相同的代码制作控制台应用程序并在项目所在的 RDP 中运行它。效果很好!

  2. 我阅读的 10 多篇关于该主题的文章中建议了很多不同的代码变体。

  3. GCI.Collect() – 没有帮助。

  4. 检查了所有有写权限的文件夹(可能IIS有问题?)。

  5. 更多。

我觉得应该是什么配置突然变了,搞不懂会是什么。

最佳答案

After I restart the server all works fine for a couple of days and then suddenly this exception occurs and after the first time it occurs it will occur everytime I try to save the PNG image, until I will restart again.

对我来说听起来像是内存泄漏。这是编译成什么 .NET 版本?这运行在什么服务器操作系统上?

您可以先将图像包含在 using block 中:

var path = @"C:\Project\images\logo.png";
using (Image image = Image.FromFile(path))
{
using (var ms = new MemoryStream())
{
image.Save(ms, ImageFormat.Png);
}
}

This link我相信与您的情况有关。

关于c# - 以 PNG 格式保存图像时出现 GDI+ 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39259352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com