Não sou desenvolvedor, então não posso dizer o que você pode instrumentar no seu aplicativo. No entanto, do sistema:
- Certifique-se de que este aplicativo tenha seu próprio pool de aplicativos, para que você possa isolar o que está fazendo de outros processos.
- Como um intervalo, talvez configure o pool para reciclar após uma memória máxima utilizada de 2000 MB. Isso será perturbador, mas melhor do que usar toda a RAM e travar.
- Execute o Process Explorer da Sysinternal (Microsoft) enquanto isso estiver ocorrendo. Isto lhe dirá MUITAS informações sobre o processo, incluindo identificadores de arquivos abertos, objetos GDI, etc.
- Execute o Monitor de desempenho e examine os objetos de desempenho .NET CLR, Active Server Pages e ASP.NET (conforme aplicável ao seu aplicativo) para ver se você pode ter alguma ideia sobre o que está causando a maldade.