c# – Bitmap.Save上的ASP.NET错误“异常(0x80004005):GDI中发生了一般错误.”

前端之家收集整理的这篇文章主要介绍了c# – Bitmap.Save上的ASP.NET错误“异常(0x80004005):GDI中发生了一般错误.”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个函数,它首先从磁盘读取图像,调整大小,然后保存到另一个目录.

当我使用Bitmap.Save(目录theimagename)时,它返回错误,如我在问题标题中所述.

我检查了目录是否正确,并且该目录中不存在给定的图像名称.

奇怪的是,相同的代码在本地机器上运行良好.但是当我将它上传到我的共享主机空间时,它只是不起作用.

代码如下.

bmpOut = new Bitmap(Size,Size);
Graphics g = Graphics.FromImage(bmpOut);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.FillRectangle(Brushes.White,Size,Size);
int topBottomPadding = 0; int leftRightPadding = 0;
if (Size > lnNewWidth + 1)
    leftRightPadding = Convert.ToInt32((Size - lnNewWidth) / 2);
else if (Size > lnNewHeight + 1)
    topBottomPadding = Convert.ToInt32((Size - lnNewHeight) / 2);
g.DrawImage(loBMP,leftRightPadding,topBottomPadding,lnNewWidth,lnNewHeight);
Bitmap bmp = new Bitmap(bmpOut);
if (bmp != null)
    bmp.Save(ResizedOutput); // C:\Inetpub\vhosts\DomainName\httpdocs\ProductImages\500px\gigabyte_ga_ep45_ds4_profilelarge[1].jpg
bmp.Dispose();
bmpOut.Dispose();
g.Dispose();
loBMP.Dispose();

堆栈跟踪:

[ExternalException (0x80004005): A generic error occurred in GDI+.]
   System.Drawing.Image.Save(String filename,ImageCodecInfo encoder,EncoderParameters encoderParams) +377630
   System.Drawing.Image.Save(String filename,ImageFormat format) +69
   System.Drawing.Image.Save(String filename) +25
   Utilities.ResizeImage(String fileName,String mode) in c:\inetpub\vhosts\batuhanakcay.com\httpdocs\App_Code\Utilities.cs:181
   Link.ToProductImage(String fileName) in c:\inetpub\vhosts\batuhanakcay.com\httpdocs\App_Code\Link.cs:79
   Product.PopulateControls(ProductDetails pd) in c:\inetpub\vhosts\batuhanakcay.com\httpdocs\Product.aspx.cs:37
   Product.Page_Load(Object sender,EventArgs e) in c:\inetpub\vhosts\batuhanakcay.com\httpdocs\Product.aspx.cs:20

解决方法

ASP Net – GDI+ and SAVE JPG or BMP on the server

99.9% of the time,when using GDI,‘a generic error occured’ means that the
directory you are trying to save to
doesn’t ahve the proper permissions.
Typically,you need to make sure that
directory is allowing asp.net to
modify files.

你检查了权限吗?

猜你在找的C#相关文章