OnStart non appelé dans le service Windows .Net 1.1
Question
J'ai un service Windows .Net framework 1.1 qui fonctionne sur un serveur, mais sur un autre, la méthode OnStart n'est pas appelée. J'ai une instruction Trace comme première ligne du remplacement OnStart et elle n'est pas en cours d'exécution. Aucune exception n’est levée et le responsable du contrôle des services Windows pense que le service a démarré correctement.
Quelqu'un a une idée de ce qui pourrait empêcher l'appel de la méthode OnStart?
Modifier: voici les paramètres .config pour la sortie de trace.
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="LogFileWriter" type="System.Diagnostics.TextWriterTraceListener,System"
initializeData="c:\interface.log" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
La solution 3
Cela a finalement été un problème très obscur avec un seul serveur qui a empêché le constructeur de l'instance de service de s'exécuter.
Autres conseils
Si vous écrivez votre trace dans un écouteur EventLogTrace, il est possible que le compte de service de la deuxième machine ne dispose pas de suffisamment de droits pour accéder au journal des événements. Voir ma réponse à cette question:
service Windows en cours d'exécution mais les journaux d'événements ne fonctionnent pas
Quelles sont les autres activités de l'événement OnStart qui suggèrent que l'événement n'est pas déclenché?
Si OnInit est appelé, remplacez-le et définissez vous-même le gestionnaire
protected override void OnInit(EventArgs e) {
this.Start += new System.EventHandler(OnStart);
base.OnInit(e);
}
Si OnInit n'est pas appelé, ajoutez AutoEventWireup = & "true &"; pour <% @ Page section peut aider.