2008-11-20 8 views

Répondre

0

Si vous avez un accès administratif au serveur, j'exécuterais un service Windows ou un travail SQL planifié en fonction de ce que vous essayez d'obtenir.

Il est agréable de pouvoir arrêter/démarrer et consigner ces travaux indépendamment de votre application Web. En outre, si vous avez des problèmes ou des erreurs dans le travail, cela pourrait nuire à votre site Web.

Enfin, vous forcez l'application Web à passer par le code chaque demande pour voir si le temporisateur s'est écoulé, ce qui est une surcharge inutile.

Comme je l'ai dit au début, la mise en œuvre dépend de ce que le travail est. Si c'est simplement pour mettre à jour un certain nombre d'enregistrements de base de données, j'utiliserais un travail planifié dans SQL Server. Si vous avez besoin d'E/S de fichiers ou d'accès à des services externes, un service Windows peut être plus approprié.

Il convient de noter que vous devez intégrer votre propre planification et sécurité de thread dans les services Windows. Une alternative consiste à créer une application de console et à utiliser une application telle que FireDaemon pour la planification.

1

À mon avis, il n'y a aucun réel avantage à faire des choses basées sur le temps dans une application Web. Allez directement à un service Windows. Vous savez que le processus devrait être opérationnel tout le temps.

Le site ASP.NET peut simplement se décharger et ne fonctionnera de nouveau qu'une fois que quelqu'un commencera à naviguer. Le cycle de vie est tout faux - c'est beaucoup plus «choppier» qu'un service.

Enfin, les services ne sont pas très difficiles à créer.