IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Service windows - app.conf


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 22
    Points : 14
    Points
    14
    Par défaut Service windows - app.conf
    Bonjour,

    J'ai créé un service windows, qui accède à différentes données de configuration, dans le fichier de configuration de l'application.
    Pas de problème pour la lecture, mais dès que j'essaye de modifier une donnée, le service plante...

    Le code dans le service ressemble à ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    System.Configuration.Configuration Config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None);
                Config.AppSettings.Settings.Remove("MaCle");
                Config.AppSettings.Settings.Add("MaCle", "NouvelleValeur");
                Config.Save(System.Configuration.ConfigurationSaveMode.Modified)
    Si je met la dernière ligne en commentaire (Config.Save), plus de problème...

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 22
    Points : 14
    Points
    14
    Par défaut
    Pour info, j'ai essayé de mettre le même code dans le "OnStart" du service, et cela a pour effet 'arrêter le service immédiatement lorsque j'essaye de le démarrer, avec le message suivante :

    "Le service MonService sur ordinateur local a démarré puis s'est arrêté. Certains services peuvent s'arrêter automatiquement s'ils n'ont aucune tâche à effectuer, par exemple, le service des alertes et les journaux de performances."

  3. #3
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par Aurélien19 Voir le message
    dès que j'essaye de modifier une donnée, le service plante...
    Avec quel message d'erreur ?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 22
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    Avec quel message d'erreur ?
    Pour info, mon service windows héberge un service WCF avec lequel mon application communique. Lorsque mon applic cliente appelle une méthode qui modifie la valeur de clé, mon application (cliente) s'arrête avec le message d'erreur suivant :

    "Le serveur n’a pas pu traiter la demande en raison d’une erreur interne. Pour plus d’informations sur l’erreur, activez IncludeExceptionDetailInFaults (depuis ServiceBehaviorAttribute ou depuis le comportement de configuration <serviceDebug>) sur le client pour renvoyer les informations de l’exception au client, ou activez le suivi conformément à la documentation du SDK de Microsoft .NET Framework 3.0 et examinez les journaux de suivi du serveur."

    Par contre, je ne sais pas si il y a une possibilité d'avoir une trace du plantage du service... donc je n'ai pas d'info sur ce qui se passe dans le service.

    Je ne pense pas que le service WCF puisse être mis en cause:
    Si je l'héberge dans un application windows, pas de problème.
    Si je fais un service contenant uniquement l'écriture dans le fichier de config (dans la méthode OnStart), le service s'arrête au démarrage avec le message suivant :
    "Le service MonService sur ordinateur local a démarré puis s'est arrêté. Certains services peuvent s'arrêter automatiquement s'ils n'ont aucune tâche à effectuer, par exemple, le service des alertes et les journaux de performances."


    J'ai aussi essayé d'écrire dans un fichier directement depuis le service, et j'ai le même problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    string fichier = "c:\\tst_srv.log";
    StreamWriter str = new StreamWriter(fichier, true);
    str.Write("log depuis le service");
    str.Flush();
    str.Close();
    Peut-être que l'écriture dans un fichier depuis un service est interdite ? Ca m'étonne un peu!

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 22
    Points : 14
    Points
    14
    Par défaut
    J'ai contourner le problème de configuration en utilisant un fichier xml qui est uniquement lu depuis le service, et écrit directement par l'interface de configuration.

    Mais ça ne fait que repousser mon problème :
    Mon service doit accéder à une base firebird embeded. Donc le service doit accéder directement au fichier de la base de données (lecture/ecriture).
    Et impossible d'ouvrir la connexion avec la BDD (si j'ouvre directement dans le OnStart, le service s'arrête. Si j'ouvre dans le service wcf, j'ai un échec de connexion).

    Bref, la vraie question :
    Est-il possible d'écrire dans un fichier depuis un service windows ???

    Help!!!

  6. #6
    Inscrit Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Points : 283
    Points
    283
    Par défaut
    Hello,

    il n'y a pas de restriction particulière pour écrire dans un fichier à partir d'un service windows. Je le fais régulièrement avec la bibliothèque log4Net par exemple.

    Dans le cas des services, la première question qu'il faut te poser c'est: quel est le user qui fait tourner mon service ? Ce user a-t-il les droits suffisant pour faire ce que le service doit faire.

    Vérifie donc que le user qui exécute ton service à les droit suffisant pour écrire là ou tu veux.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 22
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par bilb0t Voir le message
    Hello,

    il n'y a pas de restriction particulière pour écrire dans un fichier à partir d'un service windows. Je le fais régulièrement avec la bibliothèque log4Net par exemple.

    Dans le cas des services, la première question qu'il faut te poser c'est: quel est le user qui fait tourner mon service ? Ce user a-t-il les droits suffisant pour faire ce que le service doit faire.

    Vérifie donc que le user qui exécute ton service à les droit suffisant pour écrire là ou tu veux.
    Effectivement, le problème venait de là!
    Le service était installé avec "Account=LocalService"
    En mettant "Account=User", et mon compte lors de l'installation, ca marche!
    Et en mettant "Account=LocalSystem", ca marche encore mieux (pas besoin de saisir de compte à l'installation du service)!!

    Merci beaucoup!

  8. #8
    Inscrit Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Points : 283
    Points
    283
    Par défaut
    Héhéhé,

    je me rappelle d'avoir eu le même problème à une époque...

    N'oublie pas le tag résolu...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. app.config dans un service Windows pour WCF
    Par matpush dans le forum Services Web
    Réponses: 1
    Dernier message: 14/05/2009, 15h52
  2. [Service Windows]demarrer app winforms comme Service windows
    Par Mehdi Feki dans le forum Général Dotnet
    Réponses: 10
    Dernier message: 26/08/2005, 16h18
  3. [WD7.5] Service Windows
    Par cqfd dans le forum WinDev
    Réponses: 1
    Dernier message: 29/03/2005, 08h58
  4. [VB6]Arreter un service windows
    Par bouboussjunior dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 04/10/2004, 17h03
  5. [C#] Icône, barre des tâches et Service Windows
    Par SErhio dans le forum Windows Forms
    Réponses: 17
    Dernier message: 03/09/2004, 12h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo