2016-04-23 3 views
0

Я получаю эти ошибки каждый раз в то время, и я не уверен, почему. Этот код выполняет тысячи раз в день, и я получаю эти ошибки каждый раз в то время. Одно из изображений - 94,9 КБ, 1024х1024. Изображение считывается с диска Azure File Storage через UNC Путь.System.Drawing.Image.FromFile "System.OutOfMemoryException: Out of memory."

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) 

Фактический код

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

Это предполагает, что где-то есть утечка памяти. – randominstanceOfLivingThing

+0

Я разместил код выше. Утечка памяти в рамках .NET Framework? –

+1

Утечка памяти, скорее всего, происходит в 'Tournaments.ImageHandler.ProcessRequest', однако это также может быть вызвано слишком большим изображением или плохим данным заголовка. –

ответ

0

Это казалось исправить мою проблему, поскольку она не содержит ссылку на него таким образом.

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