Произошло общее сообщение GDI+C#

Место общения программистов C#
Ответить
Anonymous
 Произошло общее сообщение GDI+

Сообщение Anonymous »

Я получаю несколько общих кодов ошибок gdi+ время от времени, когда поступает много запросов. Хотя в большинстве случаев в этой части ошибок нет.
Я считаю, что ошибка быть в этой части

Код: Выделить всё

string guidString = Guid.NewGuid().ToString();
string dateNowString = DateTime.Now.ToString("ddMMyyyHHmmssfff");
var localFilePath = @"c:\temp\" + dateNowString + ".png";

//Create QrCode on local
QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M);
QrCode qrCode = qrEncoder.Encode(pass.Barcode);
Renderer renderer = new Renderer(5, Brushes.Black, Brushes.White);
renderer.CreateImageFile(qrCode.Matrix, localFilePath, ImageFormat.Png);
/*using (MemoryStream ms = new MemoryStream())
{
using (FileStream stream = new FileStream(localFilePath, FileMode.Create))
{
renderer.WriteToStream(qrCode.Matrix, ms, ImageFormat.Png);
}
}*/

//Upload locally saved QR image to AWS S3
string bucketName = ConfigurationManager.AppSettings["bucketName"].ToString();
var s3Client = new S3(bucketName, guidString);
string key = guidString + dateNowString + ConfigurationManager.AppSettings["FileFormatExtension"].ToString();
qrCodeUrl = s3Client.UploadFile(localFilePath, key);

//Delete QrCode image on local
if (File.Exists(localFilePath))
{
File.Delete(localFilePath);
}

//Save QrCode Url to BoardingPass Table
pass.QrCodeUrl = qrCodeUrl;
data.SaveChanges();
Это вызывается несколькими потоками (1 вызов = 1 поток, я применяю задачу для одновременного запуска этих потоков, поток может вызывать эту часть более одного раза)вот трассировка стека

в System.Drawing.Image.Save(имя файла String, кодировщик ImageCodecInfo, EncoderParameters encoderParams)
at Gma.QrCodeNet.Encoding.Windows.Controls.Renderer.CreateImageFile(битовая матрица, String fileName, ImageFormat imageFormat)

at API.Helpers.BoardingPassHelper.GenerateQRCode (запрос BoardingPassRequest) в .API\Helpers\BoardingPassHelper.cs:строка 972
в BCSBoardingPass.API.Controllers.API.BoardingPassController.GenerateMultiPaxBoardingPass(MBPRequest mbpRequest, Int32 requestIndex, Boolean isMbp) в controllers\API\BoardingPassController .cs:строка 615


Подробнее здесь: https://stackoverflow.com/questions/362 ... e-occurred
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»