IIS中的内存异常

时间:2015-06-21 18:39:20

标签: c# entity-framework rest iis out-of-memory

我有一个具有MVC模板并使用REST的应用程序。 假设我已经进行了休息呼叫并且它达到了特定的方法

    void sample function() {
   // connects to db through entity framework
   // retrieves data and embeds in to list
   //returns JSON of data received.
   }

所以这里的问题是我测量了运行程序所需的内存。它大约是40,000kb。现在,当我给另一个休息呼叫时,内存不会在IIS中清除。它从 40,000kb 而不是零开始。最后,如果我做3或4次调用,则会出现Out of Memory Exception。因此,每次调用后我都需要清理IIS内存,而是保留前一次调用的内存。我如何为以前的调用 all 释放内存。我已经通过处理模型和所有其他可能性尝试了各种解决方案。如果部署在本地而不是IIS上,解决方案似乎有效。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

如果垃圾收集是解决方案,那么简单的GC.Collect通常是低效的,并且出于性能原因,只有在真正需要时才应该调用它。当可用内存过低(低于作为过程参数提供的阈值)时,请尝试以下过程调用垃圾。

internal static void CollectGarbage(int SizeToAllocateInMo)
{
       long [,] TheArray ;
       try { TheArray =new long[SizeToAllocateInMo,125000]; }low function 
       catch { TheArray=null ; GC.Collect() ; GC.WaitForPendingFinalizers() ; GC.Collect() ; }
       TheArray=null ;
     }