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 et sessions


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 29
    Points : 12
    Points
    12
    Par défaut Service et sessions
    Bonjour a tous !

    Voila, j'ai ecrit un service en C# que se lance automatiquement au demarage de windows.
    Comment pourrais-je faire redémarer ce service à chaque changement de session d'un utilisateur ?

    Ce service me creer egalement un dossier. J'aimerais supprimer tous ces droits et autoriser seulement le root à pouvoir y accepder, lire et ecrire.
    en gros :
    rwx --- --- root:root

    j'ai trouvé ca pour ajouter des droits à un utilisateur :

    AddDirectorySecurity(DirectoryName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AccessControlType.Allow);

    et le même genre pour en supprimer, mais comment supprimer tous les droits d'un coup ?

    merci de votre aide !

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Un service est lancé indépendament d'une session.
    Donc pour le refaire démarrer en fonction de la session de l'utilisateur à mon avis il faut essayer de détecter soit même le log off et log on de l'utilisateur.
    Bref tout cela pour dire qu'il n'y a pas de truc automatique prévu pour les services pour faire cela à ma connaissance.

    Pour le dossier, j'ai pas compris tu as trouvé la méthode et tu ne sais aps l'utiliser ? Ou tu n'as pas trouvé la méthode ?

    Au fait pourquoi veux tu relancer le service pour chaque user, cela ne me parait pas avoir de sens pour un service ?

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 29
    Points : 12
    Points
    12
    Par défaut
    En ce qui concerne les droits, je suis un peu perdu sous windows (je viens du monde unix ou chmod, chown et fstat est roi)
    J'ai trouve le moyen d'ajouter des droit à un utilisateur sur un dossier, mais histoire d'être sûr qu'il n'y a que cet utilisateur qui a les droits, j'aimerais supprimer tous les autres avant.
    Je ne veux pas donner des droits en plus, mais les limiter à un seul utilisateur.

    Merci pour ta réponse.

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Regarde au niveau de l'objet Directory ou DirectoryInfo (peut être même DirectorySystemInfo s'il existe, je ne suis plus sur, je le connais pour File, alors ...)
    Ils ont peut être les méthodes pour la gestion des droits pour les répertoires.

    Comment pourrais-je faire redémarer ce service à chaque changement de session d'un utilisateur ?
    J'ai pas l'impression d'avoir été clair . Je t'ai demandé l'intérêt de faire cela. En effet je comprendrais que tu veuilles faire uen vérification sur certains répertoires en fonction de l'utilisateur connecté, mais pkoi relancé le service carrément.
    Enfin bref un service peut s'auto-piloter, du moins je crois.

    Je viens de penser à un truc pour faire ce que tu veux faire. Un script qui se lance au démmarage d'une session. Celui-ci pourrait arrêter ton service et le redemarrer.

    Sous windows à l'aide de gpedit (console msc) dans paramètres windows, dans script, tu peut ajouter des scripts de démmarage et d'arrêts de session.

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 29
    Points : 12
    Points
    12
    Par défaut
    Mon service loggue grace à un FileSystemWatcher les actions mennée dans un dossier sur un fichier.

    Je log tout ca dans un fichier XML par utilisateur.
    Afin de savoir dans quel fichier écrire, je dois savoir quel est l'utilisateur courant.

    Pour le moment, chaque fois que je dois logger une info, je vais chercher le nom d'utilisateur et la date afin de savoir dans quel fichier écrire. Ce n'est pas très élégant.

    Si je veux eviter de me poser une question chaque fois que je recois un signal du FileSystemWatcher (assez frequement quand meme!), je dois savoir quand l'utilisateur se log, ou se délog.
    Si je décide de placer le code qui va me chercher le nom de l'utilisateur courant au moment du redemarage du service, il me suffit de redemarer le service chaque fois qu'un utilisateur se log.

    Plus élégant encore, je pourrais avoir un bool qui me dit si j'ai été délogé ou pas et agir en fonction. Ca m'évite le redémarage du service, mais ca implique que celui-ci doit recevoir un signal de log/delog.

    Merci pour ta réponse l'idée du script au démarage de la session est bonne, mais j'aimerais rendre le service aussi autonome que possible.

    Tu comprends mieux?
    Merci encore pour tes réponses.

  6. #6
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Pour le moment, chaque fois que je dois logger une info, je vais chercher le nom d'utilisateur et la date afin de savoir dans quel fichier écrire. Ce n'est pas très élégant.
    Est-ce réellement génant ? Je veux dire, que cela ne soit pas élégant est assez subjectif. En terme de performance, cela reste à tester, et évaluer le delta entre ta solution actuelle, et celle de catcher l'evenement log/delog. Notamment, redémarrer le service peut également être bien couteux.

    En effet, si techniquement tu pouvais t'abonner à l'evenement de log de manière simple et rapide, cela serait le mieux (mais combien de temps et d'énergie vas tu déployer pour cela ? Si c'est un projet perso, ok, si c'est pro et que c'est la dernière étape, ok aussi, sinon... a calculer).

  7. #7
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    +1
    Surtout que je trouve que relancer le service windows c'est pas très élégant.

    Mais si tu veux rendre le service autonome tu peux quand même utiliser les script.
    Au démmarrage de ton service, celui-ci installe les scripts et/ou verifie leur présence.
    Après reste plus qu'à trouver un moyen de communiquer entre tes scripts et ton service.
    Le service pourrait ouvrir un port TCP d'écoute. Et les scripts enverrais des informations via ce port au service. A l'aide du protocole HTTP par exemple.

    Bref ton application reste autonome, et fait ce que tu souhaites autrement que ce que tu fait, mais comme le dit hed62 cela a un coup d'un point de vue perf (à mesurer), temps de dev, ...

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Salut,

    Dans les propriétés de la classe de base du service Windows (ServiceBase) il y a une propriété appelée CanHandleSessionChangeEvent qui permet de recevoir des notifications lorsqu'un nouvel utilisateur se log.

    Je n'ai pas testé cette propriété, mais à voir si ça règle ton problème.

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 29
    Points : 12
    Points
    12
    Par défaut
    Surtout que je trouve que relancer le service windows c'est pas très élégant.
    Je suis d'accord. Mais a choisir entre la peste et le colera...

    Le service pourrait ouvrir un port TCP d'écoute. Et les scripts enverrais des informations via ce port au service. A l'aide du protocole HTTP par exemple.
    Tu vise bien complique! le script aura juste besoin de redemarer le service au moment du log d'un utilisateur. C'est le service, quand il demarre qui se chargera de recuperer le username une fois pour la session.

    <question a part, vous sentez pas oblige de repondre>
    Tu parle d'ouvrir des socket TCP, c'est comme ca qu'on fait sous windows pour faire communiquer des processus ? Sous linux on a les IPC (socket, memoire partage, tube nomme etc...)
    </question a part>

    hed62: C'est pas seulement une question d'optim, c'est pas sexy du tout de laisser ca comme ca.

    Merci jeje2 pour l'info sur le CanHandleSessionChangeEvent.
    Jsuis pas vraiment expert en .Net, jme document et j'essaye!

    Merci pour le coup de main.

  10. #10
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 29
    Points : 12
    Points
    12
    Par défaut
    J'ai pas teste mais ca devrait passer.

    http://msdn2.microsoft.com/fr-fr/lib...nt(VS.80).aspx

    http://msdn2.microsoft.com/fr-fr/lib...ge(VS.80).aspx

    On peut hooker plein d'events sur les sessions :
    Logon Logout remoteConnect remoteDisconnect sessionLock, sessionUnlock.

    C'est trop sexy, je teste !
    Merci!

  11. #11
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Tu vise bien complique!
    Voir ma signature

    le script aura juste besoin de redemarer le service au moment du log d'un utilisateur. C'est le service, quand il demarre qui se chargera de recuperer le username une fois pour la session.
    Ce n'est pas propre.
    Un service ne doit pas être redémarrer au log d'un utilisateur, sinon quel est son intérêt, autant faire un script qui se lance à la session d'un utilisateur !!!
    Pour cela que je te parle de communication entre deux programmes.

    <question a part, vous sentez pas oblige de repondre>
    Tu parle d'ouvrir des socket TCP, c'est comme ca qu'on fait sous windows pour faire communiquer des processus ? Sous linux on a les IPC (socket, memoire partage, tube nomme etc...)
    </question a part>
    Il y a plein de moyen, fichier, base de registre, base de donnée, journal de evenements windows, .... Ouvrir des socket TCP en est un, je crois qu'il existe encore autre chose dans le même genre.

    CanHandleSessionChangeEvent
    Cela me semble être la solution.
    Bonne lecture

  12. #12
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 29
    Points : 12
    Points
    12
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    #region "Hook sur l'evenement de login"
            protected override void OnSessionChange(SessionChangeDescription changeDescription)
            {
                base.OnSessionChange(changeDescription);
     
    /// On pourrait faire ca avec un if evidement, mais je garde le case sous la main pour d'autres evenements ;)
     
                switch (changeDescription.Reason)
                {
                    case SessionChangeReason.SessionLogon:
                        set_filename();
                        break;
                }
            }
    #endregion
    Voilou, on surcharge juste la fonction qui est appele lors des evenements.

    Simplement, l'evenement SessionLogon correspond a l'ouverture d'une session et SessionLogout correspond a sa fermeture.

    Le changement simple (demarer, fermer la session, changer d'utilisateur) n'envoie pas de signal... des idees?

    Merci pour votre aide.

    EDIT:
    Auto piste :

    S'abonner au SystemEvents et se faire une delegate sexy sur SessionSwitchEventHandler

    http://msdn2.microsoft.com/en-us/lib...temevents.aspx

    http://msdn2.microsoft.com/en-us/lib...nthandler.aspx

    Serieux les mec, le C# .Net c'est abuse, on peut detourner completement le systeme en hookant tout ce qu'on veut. No limits.

    Jvous tiens au courant

  13. #13
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Bah c'est un peu le but des évents de windows.
    En fait tu ne fait que réagir à tous les événements possible. Et heuresement qu'il y a cela parce que l'on n'a pas accés aux interruptions (ou de façon très complique )

  14. #14
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 29
    Points : 12
    Points
    12
    Par défaut
    Lol heureusement qu'on a plus acces aux interruptions!

    Hop, et si je hookais l'idt[0] par une fonction qui me file un shell et ho! mince, je fais un soft qui div par 0...

    Paye ton shell en kernelland lol

    ce genre de hack n'existe plus depuis... trop longtemps pour que je m'en rappel (et heureusement!)

  15. #15
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Menfin faut bien que l'on puisse faire ce que l'on veut, après tout c'est l'utilisateur qui est fautif de ce que fait l'appli, il n'a cas accepté que les appli certifié par microsoft

  16. #16
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 29
    Points : 12
    Points
    12
    Par défaut
    J'ai un petit souci avec la delegate liee a l'evenement SessionSwitch de SystemEvents.

    voila le code du handler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            public void SessionSwitchEventHook(Object sender, SessionSwitchEventArgs e)
            {
                switch (e.Reason)
                {
                    case SessionSwitchReason.SessionLogon:
                        write_log("switch : Login");
                        set_filename();
                        break;
                }
            }
    Je m'y abonne de cette maniere dans mon constructeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SystemEvents.SessionSwitch += new SessionSwitchEventHandler(SessionSwitchEventHook);
    Je ne catch jamais l'event... vous avez des idee ?
    Merci de votre aide.

    ps : au moment du dispose de ma delegate, j'ai trouve un code ou le mec fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SystemEvents.SessionSwitch -= new SessionSwitchEventHandler(SessionSwitchEventHook);
    J'ai trouve ca etrange de faire un new a ce moment la, je comprend pas trop non plus...

    Merci de votre aide

  17. #17
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    un peu d'explication :
    Un delegate c'est un peu un pointeur de fonction. Sauf qu'il peu pointer sur plusieur fonction
    Normalement lorsqu'un événement se déclenche, toutes les méthodes abonnées au delagate de l'event se déclenchent.

    Normalement tu fait comme cela pour définir un delagate et un event :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public delegate void DelegueReInitialiser();
    public static event DelegueReInitialiser ReInitialiser;
    Avec cela tu as l'evénement reinitialiser qui est défini. Tu peux t'y abonnés du coup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReInitialiser += new DelegueReInitialiser(Methode_ReInitialiser);
    Methode_ReInitialiser étant la méthode que tu abonne au delegate.
    Donc en resumé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Event += new Delegate_de_l_event(MA_méthode_a_abonné);
    En fait si tu veux comprendre il vaut mieux l'écrire de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Event = Event + new Delegate(methode)
    Bon ok cela parait un peu tordu, mais il y a une logique derière que j'ai un peu oublier. C'est la logique du delegate. Bref cela vient du fait que les classe peuvent être enumérable grace au [].
    Pour une classe enumerable comme une list si tu fait List[0], en fait tu dis va me chercher le premier élément de la liste et renvois le moi. Pas besoin de faire une fonction comme en C.
    Donc pour en revenir au delegate, ils sont énumérable, et donc ils sont un peu comme une collection de pointeur de fonction
    Avec le mot clé new devant un delegate le compilo comprends que tu veux ajouter un "pointeur de fonction" de la méthode entre paranthèse, à la collection représenté par le délégué.
    Ensuite avec le Event += juste avant, il comprend que tu veux l'associé à un Event.
    Note que je ne sais pas si l'on peut rajouter une fonction à un delegate lié à un event, sans spécifié que le méthode sera aussi lié à l'événement.
    Bref je veux dire que je sais pas si on peut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Delegate_de_l_event(MA_méthode_a_abonné);
    sans mettre le "Event +=" puisque l'on est dans le cas d'un délégate lié à un event

    Le dernier point :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SystemEvents.SessionSwitch -= new SessionSwitchEventHandler(SessionSwitchEventHook);
    Le gars se désabonne du delegate
    D'où le placement dans le dispose

  18. #18
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 29
    Points : 12
    Points
    12
    Par défaut
    Merci pour toutes ces explications, mais j'ai bien peur d'avoir deja compris tout ce que tu m'a dit, jme suis juste trompe dans mon vocabulaire.

    regarde bien mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //SystemEvents.SessionSwitch est l'event
    //http://msdn2.microsoft.com/fr-fr/library/microsoft.win32.systemevents.sessionswitch(VS.80).aspx
    
    // SessionSwitchEventHandler le delegate
    // http://msdn2.microsoft.com/fr-fr/library/microsoft.win32.sessionswitcheventhandler(VS.80).aspx
    
    // SessionSwitchEventHook Mon 'callback' quand je recois l'event
    
    
    SystemEvents.SessionSwitch += new SessionSwitchEventHandler(SessionSwitchEventHook);
    j'ecris donc bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Event += new Delegate_de_l_event(MA_méthode_a_abonné);

    List[0], en fait tu dis va me chercher le premier élément de la liste et renvois
    Ca c'est juste du sucre syntaxique, c'est de la surcharge d'operateur sur [], tout comme le += entre un event et un delegate.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SystemEvents.SessionSwitch -= new SessionSwitchEventHandler(SessionSwitchEventHook);
    Je trouve juste assez gore de creer une instance de delegate afin d'aller supprimier celle qui se trouve dans la liste des delegate de l'event.

    Merci beaucoup pour ton aide. mais je ne comprend vraiment pas pourquoi cela ne marche pas tel quel, je vais me documenter.
    Merci encore

  19. #19
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Bref je veux dire que je sais pas si on peut faire :
    Code :
    new Delegate_de_l_event(MA_méthode_a_abonné);
    sans mettre le "Event +=" puisque l'on est dans le cas d'un délégate lié à un event
    Absolument pas !!!

    Si tu veux faire cela, ce qui est TRES deconseille, il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyEvent[0] = OtherMethod;
    Mais cela est à proscrire, cela revien à faire de la manipulation de pointeurs.

    Avec le mot clé new devant un delegate le compilo comprends que tu veux ajouter un "pointeur de fonction" de la méthode entre paranthèse, à la collection représenté par le délégué.
    Non pas. En fait, c'est new delegate qui va faire, comme cela l'indique, un nouveau delegué (pointeur) de fonction. delegate n'est pas une collection. L'ajout à la collection se fait par le +=.

    Si ce que tu di était vrai, alors String serait une collection de chaine, et faire new String signifierai : je veux ajouter une chaine a la collection String ...

  20. #20
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Tu ne crées pas d'instance. Dans ce cas new n'est pas compris par le compilo comme mot clé pour crée une instance, mais plus comme un add, ou un remove.

    Tu es sur que l'event est déclenché. Car la synthaxe est bonne. Quoi qu'il se passe tu devrais passer dans ma méthode abonné au délégué lorsque l'event se produit.
    Tu as mis des espions dans ta méthode, genre Console.WriteLine("coucou"); ?

Discussions similaires

  1. Web Services et session
    Par lenoil dans le forum Services Web
    Réponses: 2
    Dernier message: 11/01/2012, 18h13
  2. web service + statefull session bean
    Par pass38 dans le forum Services Web
    Réponses: 4
    Dernier message: 29/07/2008, 17h35
  3. Service ou programme actif apres fermeture de session
    Par SlideMT dans le forum Windows
    Réponses: 2
    Dernier message: 12/04/2006, 10h47
  4. Réponses: 3
    Dernier message: 03/04/2006, 12h04
  5. Réponses: 4
    Dernier message: 24/06/2004, 13h20

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