Je souhaite augmenter le délai de requête pour une action de contrôleur spécifique dans mon application. Je sais que je peux le faire dans le web.config pour l'application entière, mais je préfère le changer sur cette seule action.
Exemple Web.config:
<system.web>
<httpRuntime executionTimeout="1000" />
</system.web>
Comment fait-on ça?
Vous pouvez définir cela par programme dans le contrôleur: -
HttpContext.Current.Server.ScriptTimeout = 300;
Définit le délai d'expiration à 5 minutes au lieu des 110 secondes par défaut (quelle étrange valeur par défaut?)
<location path="ControllerName/ActionName">
<system.web>
<httpRuntime executionTimeout="1000"/>
</system.web>
</location>
Il est probablement préférable de définir de telles valeurs dans web.config au lieu de contrôleur. Le codage en dur des options configurables est considéré comme dangereux.
J'ai dû ajouter "Current" en utilisant .NET 4.5:
HttpContext.Current.Server.ScriptTimeout = 300;
Tout simplement, cela fonctionnera.
//main thread
System.Threading.Thread.Sleep(1000);
//task delay
await Task.Delay(5000);