Quelle est la langue la plus facile à construire un service Windows?
Le plus facile dans ce cas serait définie comme moins de code, et le point le plus bas de l'entrée dans la langue.
Quelle est la langue la plus facile à construire un service Windows?
Le plus facile dans ce cas serait définie comme moins de code, et le point le plus bas de l'entrée dans la langue.
Au risque d'énoncer une évidence, si vous avez des C/C++/Java fond, je pense que C# vous propose le point le plus bas de l'entrée.
En supposant que vous êtes à l'aide de Visual Studio 2008, vous pouvez suivre ces étapes:
false
pour éviter des incidents en cours d'écriture par défaut pour le journal des événements d'Application (Note: je ne dis pas que vous ne devriez pas le service journal des événements; je préfère juste l'écriture de mon propre journal d'événements au lieu de le journal d'Application - voir ci-dessous)true
si vous souhaitez gérer le système de fermeturestrue
, vous aurez envie de remplacer la OnShutdown méthode. J'ai créé un exemple ci-dessous illustrant l'utilisation de ces fonctions.using System.Diagnostics;
[RunInstaller(true)]
public partial class ProjectInstaller : Installer
{
public ProjectInstaller()
{
InitializeComponent();
EventLogInstaller installer = FindInstaller(this.Installers);
if (installer != null)
{
installer.Log = "ServiceExample"; // enter your event log name here
}
}
private EventLogInstaller FindInstaller(InstallerCollection installers)
{
foreach (Installer installer in installers)
{
if (installer is EventLogInstaller)
{
return (EventLogInstaller)installer;
}
EventLogInstaller eventLogInstaller = FindInstaller(installer.Installers);
if (eventLogInstaller != null)
{
return eventLogInstaller;
}
}
return null;
}
}
À ce stade, vous pouvez construire votre projet pour obtenir votre exécutable Windows service. Pour installer votre service, ouvrez Visual Studio 2008 invite de commande et accédez au Debug ou Release répertoire où votre exécutable. À l'invite de commandes, tapez la commande suivante: InstallUtil ServiceExample.exe. Cela permettra d'installer votre service sur la machine locale. Pour le désinstaller, tapez la commande suivante à l'invite: InstallUtil /u ServiceExample.exe
Tant que votre service n'est pas en cours d'exécution, vous pouvez apporter des modifications à votre service et re-construire, c'est à dire, vous n'avez pas à désinstaller votre service pour apporter des modifications. Cependant, il vous sera impossible de remplacer le fichier exécutable avec vos corrections et améliorations tant qu'il est en cours d'exécution.
Pour voir votre service dans l'action, ouvrez le ServiceExample.cs de fichiers et d'apporter les modifications suivantes:
using System.Diagnostics;
public partial class ServiceExample : ServiceBase
{
public ServiceExample()
{
// Uncomment this line to debug the service.
//Debugger.Break();
InitializeComponent();
// Ties the EventLog member of the ServiceBase base class to the
// ServiceExample event log created when the service was installed.
EventLog.Log = "ServiceExample";
}
protected override void OnStart(string[] args)
{
EventLog.WriteEntry("The service was started successfully.", EventLogEntryType.Information);
}
protected override void OnStop()
{
EventLog.WriteEntry("The service was stopped successfully.", EventLogEntryType.Information);
}
protected override void OnShutdown()
{
EventLog.WriteEntry("The service was shutdown successfully", EventLogEntryType.Information);
}
}
Une fois que vous exécutez votre service avec ces changements, vous pouvez regarder le ServiceExample journal des événements dans l'Observateur d'Événements et de voir les messages enregistrés.
Espérons que cette aide.
EDIT: Si vous préférez utiliser le journal des événements Application pour votre journalisation des événements au lieu d'un programme personnalisé, il suffit de n'apporter aucune modification à la ProjectInstaller.cs fichier. En outre, de laisser de côté la ligne qui définit la propriété du Journal du Journal des événements dans le ServiceExample constructeur. Lorsque vous exécutez votre service, votre journal des messages apparaissent dans le journal des événements d'Application.
Je suis d'accord avec tout le monde qui a répondu ailleurs, mais je vous dirais de ne pas trop se concentrer sur la langue, aussi longtemps que vous travaillez dans le .NET framework, et il y a un starter projet pour vous, vous êtes bon pour aller. J'ai fait plusieurs "services Windows" dans le passé, et à la fois dans VB.NET et C#, avec un minimum de code.
Ce que je recommanderais l'OP à faire est d'apprendre à construire le package du programme d'installation. Installer le service est aussi facile que de l'exécution "installutil.exe {lecteur}\path\to\file.exe" mais quand vous avez à faire quelque chose de plus grand que le déploiement d'un "hello world" service Windows, il est bon de savoir et de comprendre comment déployer le service de manière significative.
Ne pas commencer une guerre de flammes, mais j'ai "normalisé" sur l'utilisation de WiX pour tous mes packages de déploiement, en dehors de faire de la vieille école de COM interop genre de chose, puisque c'est un choc de travail à faire pour installer correctement. Je suis impatient pour le WiX équipe pour développer le programme d'amorçage pièce qui vous permet de mettre les conditions préalables et les principaux msi dans un fichier EXE qui peut être téléchargé. Ils l'ont prévue pour la 3.5, je vais donc attendre patiemment, et l'utilisation de WinZip Self-Extractible fichiers exécutables pour l'instant.
Avec Visual C#, vous trouverez la plupart des exemples de code sur le net. Combiné avec Visual Studio, et c'est une promenade dans le parc pour obtenir une base de Windows Service et en cours d'exécution. Visual Studio permet également un composant logiciel enfichable pour créer un package d'installation MSI.
Que serait mon choix
L'utilisation du Service de Visual Studio type de projet, l'utilisation de C# ou de VB.NET.
Personnellement, je préfère le C#, mais en général, il est facile de comprendre le cycle de vie et code de la logique à la scène désirée.
La construction d'un programme d'installation est également très facile.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.