3

Je voulais juste obtenir des informations sur un projet sur lequel je travaille. Fondamentalement, je crée un service qui surveille et traite les nouveaux fichiers dans un répertoire spécifié par un fichier de configuration et d'autres paramètres via la ligne de commande. Il doit également sortir du texte via la ligne de commande, c'est-à-dire lorsqu'un utilisateur tape '-help' il affichera son utilisation. Un but est également de faire en sorte que l'utilisateur puisse changer le fichier de configuration à la volée, afin que le service surveille constamment le fichier de configuration pour les changements et ajuste en conséquence. Le défi que je vois est d'essayer de consolider la possibilité d'entrer des commandes via la ligne de commande, afficher la sortie, comme s'il s'agissait d'une application de console, et avoir le service capable de traiter ces commandes alors qu'il fonctionne dans le Gestionnaire de contrôle de service. Jusqu'à présent, dans ma recherche, les solutions que j'ai trouvées semblent montrer comment créer une application de service Windows qui peut également fonctionner comme une application de console, mais elle fonctionne soit comme l'un ou l'autre, pas les deux. Toute suggestion ou contribution est appréciée.Application de service Windows pouvant accepter dynamiquement les commandes de la console

MISE À JOUR:

Merci à tous pour vos suggestions, je l'ai fait un peu reading sur divers mécanismes Windows pris en charge IPC. J'ai bouilli mes options à la cartographie des fichiers, aux tubes nommés et au RPC. Je suppose pour l'instant que l'application Windows Service et l'application Helper Console seront sur le même ordinateur et n'auront pas besoin de communiquer sur un réseau. Je vais d'abord regarder Named Pipes.

+1

Si vous vouliez créer quelque chose où un utilisateur pouvait envoyer des commandes via une ligne de commande, vous pouviez toujours écouter votre application sur un port spécifique via un client tcp, auquel vous pouviez accéder et envoyer des commandes. –

Répondre

2

Le service doit offrir une possibilité de communiquer avec lui, mais cela ne peut pas être fait directement, il doit être fait par une sorte de IPC (communication inter-processus), cela pourrait être .net Remoting, WCF, tcp/ip. Vous devrez écrire un programme d'aide qui analyse la ligne de commande et utilise cette IPC pour envoyer les commandes au service, qui peut agir de manière appropriée en le recevant.

0

Je voudrais écrire une application de console qui envoie des demandes au service et affiche ses réponses. Si vous voulez être intelligent, vous pouvez inclure les deux parties dans le même exécutable. Je n'arrive pas à trouver un moyen d'écrire et de lire le service depuis la console pendant qu'elle fonctionne en tant que service.