C# GDI+;中发生一般性错误;。仅在生产环境中发生。(WebAPI)
我有一个函数,它接受一个工作id字符串,并使用ZXing库生成一个QRcode,然后通过Bitmap.save()将图像保存到磁盘方法。该问题在我的本地计算机中不存在,并且一切正常,但GDI异常会在生产环境中引发,该环境会正常运行一段时间,但在几个小时后或有时在一天之后,生成一个空文件,并且仅通过回收应用程序池来解决该异常。我已经尝试了我能找到的一切,从检查权限到文件路径,再到处理位图的内存分析,但似乎什么都不起作用C# GDI+;中发生一般性错误;。仅在生产环境中发生。(WebAPI),c#,exception,asp.net-web-api,gdi+,zxing,C#,Exception,Asp.net Web Api,Gdi+,Zxing,我有一个函数,它接受一个工作id字符串,并使用ZXing库生成一个QRcode,然后通过Bitmap.save()将图像保存到磁盘方法。该问题在我的本地计算机中不存在,并且一切正常,但GDI异常会在生产环境中引发,该环境会正常运行一段时间,但在几个小时后或有时在一天之后,生成一个空文件,并且仅通过回收应用程序池来解决该异常。我已经尝试了我能找到的一切,从检查权限到文件路径,再到处理位图的内存分析,但似乎什么都不起作用 public QRCodeModel GenerateQRCode(QRCo
public QRCodeModel GenerateQRCode(QRCodeModel obj, UserProfile profile)
{
try
{
string base64Image = "";
var writer = new BarcodeWriter();
writer.Format = BarcodeFormat.QR_CODE;
writer.Options.Height = 70;
writer.Options.Width = 70;
writer.Options.Margin = 0;
var result = writer.Write(obj.WORK_ID.ToString());
if (!Directory.Exists(obj.AbsolutePath))
{
Directory.CreateDirectory(obj.AbsolutePath);
}
using (var bitmap = new Bitmap(result))
{
//bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
//base64Image = Convert.ToBase64String(ms.GetBuffer()); //Get Base64
string curtime=obj.AbsolutePath+obj.WORK_ID+ DateTime.Now.Ticks.ToString() + ".png";
bitmap.Save(curtime, System.Drawing.Imaging.ImageFormat.Png);
base64Image = Convert.ToBase64String(File.ReadAllBytes(curtime)); //Get Base64
}
//}
string src = "data:image/png;base64," + base64Image;
string encodedString = HttpUtility.UrlEncode(src);
obj.ENCODED_IMAGE_BYTES = encodedString;
return obj;
}
catch (Exception ex)
{
throw ex;
}
}