2016-03-30 18 views
0

Birçok istek geldiğinde birkaç genel gdi + hata kodu alıyorum. Çoğu zaman bu kısımda hata yok tho.Genel GDI + Hata Oluştu QR Kodu

hata Bu birkaç parçacığı (1 çağrı = 1 iplik tarafından çağrılan

  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(); 

bu bölümünde olmak inan aynı anda bu konuları çalıştırmak için bir görev başvuruyorum, bir iş parçacığı bu bölümü çağırabilir daha

burada biz bir çoklu işlemli ortamda versiyon v kütüphanesinin 0.3 kullanılarak rastgele bu tür bir hata vardı stacktrace

at System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams)  at Gma.QrCodeNet.Encoding.Windows.Controls.Renderer.CreateImageFile(BitMatrix matrix, String fileName, ImageFormat imageFormat)  at <redacted>API.Helpers.BoardingPassHelper.GenerateQRCode(BoardingPassRequest request) in <redacted>.API\Helpers\BoardingPassHelper.cs:line 972  at BCSBoardingPass.API.Controllers.API.BoardingPassController.GenerateMultiPaxBoardingPass(MBPRequest mbpRequest, Int32 requestIndex, Boolean isMbp) in <redacted>controllers\API\BoardingPassController.cs:line 615 
+1

İki iş parçacığı aynı dosyayı oluşturmaya çalışıyor olabilir mi? Dosya adını, yalnızca test edilecek tarih sonekinin yerine çalışan bir sayaçla değiştirmeye çalışın. –

cevap

1

var) bir kez daha. Bu rastgele davranışı düzeltmeyi başaramadık. Ancak, resim biçimini PNG'den JPEG'e dönüştürdüğümüzden, artık bir hata almadık.