Hoje duelei por um tempo com as chamadas assíncronas numa página ASP e por isso, vou postar aqui a solução para poder me lembrar caso precise.
Quadro muito comum: Criei uma classe que era instanciada e tinha um método chamado. Após isso, internamente, os processos eram executados em diversas threads para agilizar e, ao concluir tudo, um evento disparado. Se fosse windows application seria “mamão com açucar”, mas numa web aplication… temos o fator timeout da mesma.
A primeira coisa a se fazer é acrescentar na declaração da página a propriedade Async, isso definirá que a mesma pode tratar as chamadas assíncronas. Quanto ao timeout, o default é 90 segundos… se voce, como eu, tiver um processo realmente demorado e precisar aumentar isso, fazemos através da propriedade AsyncTimeout, lembrando que a unidade é segundos.
Mas isso não basta, se sua aplicação usar AJAX… Nesse caso entra o fator ScriptManager que também possui uma propriedade para indicar o timeout.
E agora vai que é uma beleza.