2009-08-21 10 views
2

Nous exécutons un service Web en tant que projet de site Web. Les clients font des demandes qui reviennent après quelques secondes, mais qui génèrent un thread qui devrait fonctionner pendant des heures. Le thread effectue des demandes Web et écrit dans une base de données et il est limité par des appels Thread.Sleep. Après une exécution d'environ 20 minutes avec plusieurs threads en cours d'exécution, tous les threads reçoivent un ThreadAbortException en même temps. Thread.resetAbort n'aide pas. L'exception peut se produire lors d'un appel SQL, lors d'une requête Web ou lors d'un appel Thread.Sleep.Le site Web ASP.NET 2.0 obtient ThreadAbortException

Je pensais que le problème pouvait être l'attribut httpRuntimeexecutionTimeout dans web.config, mais cela n'a pas résolu le problème.

Y a-t-il d'autres idées qui pourraient tuer tous nos sujets?

+0

Est-ce que vous regardez votre délai d'attente de la session? Je devine que ces threads sont la propriété d'une session plutôt que l'application, et en tant que tels peuvent être soumis à ce délai. –

+0

Bonne pensée, mais nous n'utilisons pas la session. –

Répondre

2

Le pool d'applications dans IIS a un délai d'inactivité. Il devait être éteint.

(Outils d'administration> IIS. Cliquez droit sur le pool d'applications> Propriétés. Onglet Performance.)

3

Je suppose que l'application Web possède le thread, et l'application s'arrête après un certain temps. Si j'architais quelque chose comme ceci, j'écrirais un service Web qui prend vos demandes de vos clients et les met dans une base de données, alors j'écrirais un service de fenêtres qui interroge cette base de données pour des demandes de client et engendre les discussions qui fait tout ce dont vous avez besoin (fait des requêtes web et écrit dans une base de données). Cela ressemble à votre écriture d'un moteur de processeur, et je ne pense pas qu'une application asp.net est un bon endroit pour héberger ce genre de chose.

+0

D'accord. Je ne contrôle pas l'architecture de ce projet, mais ce genre de problèmes est un bon carburant pour cet argument. –

Questions connexes