As aplicações no Windows x86 estão limitadas a 2 gb / ea. Você pode alterar isso adicionando o sinalizador / 3gb ao boot.ini, mas isso pode causar um comportamento inesperado do aplicativo e deve ser usado com cuidado. MS oficialmente não suporta isso ( link )
Os limites de memória do IIS podem ser definidos na guia Reciclagem no pool de aplicativos relevante.
Como você está determinando que o aplicativo nunca ultrapasse 500MB? Se você estiver usando o Gerenciador de Tarefas, lembre-se de que é raramente (ou nunca) uma representação precisa do uso de memória conforme o Windows o entende. Use o Process Explorer: link
Existem várias outras questões relevantes:
- Existem erros registrados em seus registros de eventos?
- É uma linha de código específica lançando as exceções? Em caso afirmativo, esta exceção OutOfMemory, na verdade, é um problema do IIS ou um problema de código?
- Você está limitando seus pools de aplicativos com a configuração Recyling?
- Existem outros serviços em execução nesta máquina?
Provavelmente, o IIS, o ASP.NET e todas as bagagens associadas estão sendo executados no limite de 2 GB, embora o Gerenciador de Tarefas do Windows não o mostre. Definir os limites de reciclagem ou atualizar para x64 provavelmente fará uma grande diferença.