2010-10-23 9 views
7

J'ai essayé de définir l'exécutionTimeout dans web.config pour une application asp.net mvc. executionTimeout ne fonctionne pas sur asp.net mvc

<location path="Home/Index"> 
    <system.web> 
     <httpRuntime executionTimeout="5"/> 
    </system.web> 
    </location> 

tout utilisé le Thread.sleep dans l'action Index

public ActionResult Index() 
     { 
      Thread.Sleep(30000);    
      return View(); 
     } 

aussi, i définir la mise au point de complilation à "false". après l'arrêt de l'action environ 30 secondes et l'exception "demande de délai d'attente" ne se produit pas et la vue a été affichée avec succès.

quelqu'un sait comment faire le executionTimeout pour travailler dans asp.net mvc?

+0

double possible de [ASP.NET MVC et httpRuntime executionTimeout] (http://stackoverflow.com/questions/492346/asp-net-mvc-and-httpruntime-executiontimeout) –

Répondre

4

Vous devez remplir les conditions suivantes:

  1. nom de domaine n'est pas localhost (pour tester le timeout, vous devez utiliser "YourComputerName" au lieu de "localhost").
  2. Le projet est compilé en mode Release.
  3. <compilation debug="false">

Alors aussi, pensez à ceci:

interne ASP.NET utilise une minuterie pour appeler le processus d'annulation de la demande. Cette minuterie est déclenchée toutes les 15 secondes, donc si le executionTimeout est réglé à 3 secondes, en réalité la requête peut expirer à tout moment entre 3 secondes et 18 secondes.

Lorsque le temporisateur est déclenché, un thread du ThreadPool est utilisé pour vérifier toutes les demandes. Ceux qui ont expiré sont envoyés un ThreadAbortException en appelant Abort sur le thread exécutant la requête.

Remarque: Gardez à l'esprit que ThreadAbortException peut uniquement être observé par code managé. Ainsi, si votre thread appelle des fonctions non gérées, le thread ne sera pas abandonné et, par conséquent, le timeout ne sera pas appliqué, jusqu'à ce que l'exécution retourne dans le monde géré. Cela peut être une durée arbitraire de retard en fonction de ce que fait ce code non géré.

En savoir plus: http://consultantpoint.wordpress.com/2012/09/07/how-the-execution-timeout-is-managed-in-asp-net/

Questions connexes