Peut WCF être auto programmé?
J'ai exigences ci-dessous:
(1) Effectuer l'action A, lorsque les demandes de l'utilisateur.
(2) Nous voulons aussi effectuer la même Action A' deux fois en un jour, même si les utilisateurs n'ont pas la demande pour cela.
J'ai un WCF
service web qui a la méthode XYZ qui effectue l'action A
. La méthode XYZ sera appelée lorsque l'utilisateur demande.
Maintenant la question est, puis-je planifier une action sans la création de la fenêtre de service (qui peut héberger ce service) ou la création d' proxy
?
Est-il un moyen pour effectuer une action de l'utilisateur et de l'annexe de la même action, grâce à une seule application?
Avez-vous essayé de planification en ligne des services?
OriginalL'auteur sharp_net | 2011-08-26
Vous devez vous connecter pour publier un commentaire.
Non, WCF ne peut pas être auto-programmée. Vous avez besoin de mettre en œuvre une Tâche Planifiée (voir Les travaux de planification sur windows), un Service Windows avec un timer (qui vous avez dit que vous ne voulez pas le faire, si je comprends bien) ou une autre application avec une minuterie.
Vous pouvez démarrer un thread comme par l'autre réponse, mais cela dépend de votre service appelant lui-même - que je préfère appeler ça de l'extérieur, à partir d'un autre processus.
Une tâche planifiée peut exécuter un fichier exécutable. Vous pouvez écrire une application console qui appelle votre service WCF, les journaux de toute la suite (si nécessaire), puis se termine.
Normalement, je préfère mettre en œuvre ce type de minuterie par le biais d'un Service Windows, tout simplement parce que le Service Windows peut être surveillé, peut se connecter, et peut auto-démarrage /redémarrage automatique - l'installer et il fonctionne. Si je n'avais pas envie d'utiliser un Service Windows alors je vous planifiez une tâche.
OriginalL'auteur Kirk Broadhurst
En général, je fais cela simplement en appelant le service WCF méthode à partir d'une sorte de planificateur de tâches. Vraiment dans une forme simple, vous avez juste à lancer un Fil à partir de votre service, qui exécute la WCF méthode périodiquement. De nouveau ce n'est pas la meilleure solution, mais son plus facile à démontrer. Vous pourriez aussi utiliser une autre bibliothèque du planificateur de le faire aussi...
Puis, quelque part dans le démarrage de l'application:
C'est une façon de le faire, mais pas de la meilleure façon, mais, fondamentalement, vous pouvez simplement appeler le service WCF méthode, tout comme toute autre méthode dans l'application.
OriginalL'auteur CodingWithSpike