ASP.Net tiene un tiempo de espera incorporado que hará que mate una conexión que exceda los límites configurados.
The default is 110 seconds.
<system.web>
<httpRuntime executionTimeout="110">
</system.web>
Sin embargo, esto se desactiva cuando se compila en modo de depuración.
<!-- Execution Timeout Will Not Be Enforced -->
<compilation debug="true" />
Si es necesario establecer un tiempo de espera de ejecución de un controlador específico, entonces siempre se puede crear una ubicación específicamente para ese controlador, y establecer el tiempo de espera allí.
<location path="MyHandler.ashx">
<system.web>
<!-- Set execution timeout to 10 minutes -->
<httpRuntime executionTimeout="600"/>
</system.web>
</location>