2016-04-23 3 views
0

Je reçois ces erreurs de temps en temps et je ne sais pas pourquoi. Ce code s'exécute des milliers de fois par jour et je reçois ces erreurs de temps en temps. L'une des images est de 94,9 Ko, image 1024x1024. L'image est lue à partir d'un disque Azure File Storage via le chemin UNC.System.Drawing.Image.FromFile "System.OutOfMemoryException: mémoire insuffisante."

System.OutOfMemoryException: Out of memory. 

Generated: Sat, 23 Apr 2016 15:09:54 GMT 

System.OutOfMemoryException: Out of memory. 
    at System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement) 
    at System.Drawing.Image.FromFile(String filename) 
    at Tournaments.ImageHandler.ProcessRequest(HttpContext context) in C:\Development\Exposure\Main\Websites\Tournaments\ImageHandler.ashx.cs:line 64 
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

code réel

using (var image = Image.FromFile(path)) 
{ 
} 
+0

Cela suggère qu'il y a une fuite de mémoire quelque part. – randominstanceOfLivingThing

+0

J'ai posté le code ci-dessus. Fuite de mémoire dans le cadre .NET? –

+1

La fuite de mémoire est probable dans 'Tournaments.ImageHandler.ProcessRequest', cependant, cela peut également être causé par une image qui est trop grande ou qui a de mauvaises données d'en-tête. –

Répondre

0

Cela semble résoudre mon problème car il ne tient pas une référence à cette façon.

using (var memoryStream = new MemoryStream(File.ReadAllBytes(path))) 
      { 
       using (var image = Image.FromStream(memoryStream)) 
       {