C# System.Runtime.InteropServices.ExternalException:GDI+;

C# System.Runtime.InteropServices.ExternalException:GDI+;,c#,asp.net,.net,image,generics,C#,Asp.net,.net,Image,Generics,我有一个在asp.net C#应用程序中旋转图像的代码 这是我的代码: protectedvoid ImgBtn180\u单击(对象发送者,ImageClickEventArgs e) { 尝试 { 字符串vImageName=LblFarmId.Text; 字符串vPath=“~/attachments/survey/”+vImageName+”.jpg”; Image1.ImageUrl=vPath; //获取图像的路径 字符串路径=Server.MapPath(vPath); //从该路径

我有一个在asp.net C#应用程序中旋转图像的代码 这是我的代码:

protectedvoid ImgBtn180\u单击(对象发送者,ImageClickEventArgs e)
{
尝试
{
字符串vImageName=LblFarmId.Text;
字符串vPath=“~/attachments/survey/”+vImageName+”.jpg”;
Image1.ImageUrl=vPath;
//获取图像的路径
字符串路径=Server.MapPath(vPath);
//从该路径中的图像创建图像对象
System.Drawing.Image img=System.Drawing.Image.FromFile(路径);
//旋转图像
img.RotateFlip(RotateFlipType.Rotate180FlipXY);
//将图像保存到文件中
img.Save(路径);
//发布图像文件
img.Dispose();
随机rnd=新随机();
Image1.ImageUrl=vPath+“?”+rnd;
}
捕获(异常ee)
{
lblcacherror.Text=ee.ToString();
}
}
当我在服务器上运行它时,有时会出现以下错误

System.Runtime.InteropServices.ExternalException:GDI+中发生一般错误。在System.Drawing.Image.Save(字符串文件名,ImageCodeInfo编码器,EncoderParameters encoderParams)在System.Drawing.Image.Save(字符串文件名,ImageFormat格式)在System.Drawing.Image.Save(字符串文件名)

有时会出现以下错误

System.OutOfMemoryException:内存不足。在 System.Drawing.Image.FromFile(字符串文件名,布尔值 在System.Drawing.Image.FromFile(字符串)中使用EmbeddedColorManagement 文件名)

我阅读了所有关于此错误的文章和解决方案,但没有任何效果。 有些人说,“确保所需文件夹具有读/写权限。” 它有权限

有些人说,“您必须处理映像对象才能释放服务器上的内存。”, 我已经有了img.Dispose()代码;要释放图像文件


代码中可能有什么问题?有什么建议吗?

我将此(Rotate180FlipXY)更改为(Rotate180FlipNone),然后问题就解决了

或者尝试一下。我很好奇,你读了什么文章?我编辑了你的标题。请看,“,其中的共识是“不,他们不应该”。所以你认为我必须把它放在里面使用吗?像这样。。。。使用(System.Drawing.Image img=System.Drawing.Image.FromFile(path)){//旋转图像img.RotateFlip(RotateFlipType.Rotate180FlipXY);//将图像保存到文件img.save(path);//发布图像文件img.Dispose();}这是类似问题的错误解决方案示例@劳埃德·泰克斯,我照你说的做了,但我还是犯了同样的错误