2010-10-27 3 views
0

Le recyclage automatique du pool d'applications dans IIS supprime-t-il un thread de travail appelé QueueUserWorkItem dans ASP.NET?Pools d'applications IIS et multithreading

Comme cela se produit à des intervalles définis et que je reçois des erreurs aléatoires, il semble, je me demande si ces deux se heurtent les uns les autres?

Si oui, comment exécuter une tâche asynchrone et ne pas être tué par un recyclage?

Répondre

1

Lorsque ASP.NET recycle, toutes les tâches de longue durée dans le processus ASP.NET seront arrêtées. Si vous devez exécuter des tâches en arrière-plan, créez un service Windows compagnon pour héberger ces tâches distinctes.

+0

Je pense que malheureusement vous avez raison. Merci – bladefist

0

Cela dépend du type de paramètres de recyclage que vous avez défini dans le pool d'applications. En supposant que vous avez défini le recyclage à un moment précis [ou toute autre condition d'ailleurs!] ... à ce moment-là un nouveau processus de travail sera engendré, et le processus de travail existant aura 90 secondes pour faire ce qu'il était censé faire . Après 90 secondes, tout ce qui est présent dans le processus aurait disparu.

Vous avez dit que cela se produisait à intervalles réguliers. Avez-vous défini le recyclage basé sur le temps dans IIS?

+0

Yea. Toutes les 2000 minutes environ pour éviter que cela n'arrive souvent. Mais ces tâches sont en dehors d'un service, et sont à long terme. – bladefist