我正在使用Magick.Net-Q16-AnyCPU nuget软件包来调整第一次下载的图像的大小。在我的本地计算机上,它运行正常,没有问题。
我已经部署了此工具(作为控制台应用程序),并且该工具自动按计划在AWS EC2实例上运行。在EC2实例上,该工具会逐渐消耗掉所有RAM,直到没有可用的RAM,然后由于明显的原因而崩溃。
我真的不明白为什么会在EC2实例上而不是在我的机器上发生这种情况。这使我认为这不是代码问题,而是环境问题。无论如何,我都在下面包含了我的代码。
private void resizeVariant(ImageVariant imageVariant, byte[] data)
{
using (var image = new MagickImage(data))
{
image.Format = MagickFormat.Jpeg;
image.Interlace = Interlace.Jpeg; // Make image progressive
var geometry = new MagickGeometry(imageVariant.Width, imageVariant.Height);
geometry.FillArea = true;
try
{
image.Resize(geometry);
image.Crop(imageVariant.Width, imageVariant.Height);
image.RePage();
imageVariant.ResizedImageData = image.ToByteArray();
}
catch (Exception ex)
{
this.logger.Error($"Error resizing image variant for image {imageVariant.S3Key} ({imageVariant.Width},{imageVariant.Height})\n{ex.Message}\n{ex.StackTrace}");
image.Dispose();
}
image.Dispose();
}
}
框架 :. NET Core 2.0, EC2实例类型: Microsoft Windows Server 2016