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

MFC Discussion :

portage d'un service de NT4 vers Windows Server 3003


Sujet :

MFC

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut portage d'un service de NT4 vers Windows Server 3003
    Bonjour,

    Je suis un petit nouveau sur le forum et je rencontre un problème avec le portage de NT4 vers W2003 d'une application développée avec Visual C++ et qui démarre en tant que service. Je m'explique:
    L'appli d'origine a été développée sous Visual C++ 6. Je l'ai recompilé sous Visual C++ 2003 puis installée sous Windows server 2003. Cette appli est un service. Elle semble bien s'inscrire dans le service control manager et démarre normalement à partir de ce SMC. Par contre, si je tente de l'arrêter, je me retrouve avec une erreur 183 (ERROR_ALREADY_EXIST).
    Quelqu'un aurait-il déjà rencontré ce problème ou aurait une idée lumineuse?

    Merci pour votre aide!

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    un service sous NT4 doit touner sous 2003 .
    si ton service ne s'arrete pas c'est que tu as une erreur de gestion dans gestionnaire d'evenement dans le service.
    a tout hasard regarde la faq:
    http://c.developpez.com/faq/vc/?page...wToMakeService


  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'ai regardé l'exemple de code du FAQ et ça correspond à ce qui est fait dans mon code.
    Effectivement, dans le gestionnaire d'EVT système, j'ai la suite de message suivant :

    idEvent 7036 : Le service CGDC Manager SNMP est entré dans l'état : en cours d'exécution.
    idEvent 7035 : Un contrôle de démarrage a correctement été envoyé au service CGDC Manager SNMP.
    idEvent 7035 : Un contrôle Arrêter a correctement été envoyé au service CGDC Manager SNMP.
    idEvent 7036 : Le service CGDC Manager SNMP est entré dans l'état : arrêté.
    idEvent 7023 : Le service CGDC Manager SNMP s'est arrêté avec l'erreur : Impossible de créer un fichier déjà existant.

    Le service s'arrête toutr de même mais me renvoit une erreur 183.
    Il semblerait que se soit un problème avec l'ouverture du journal des evts (2 ouvertures consécutifs?) Pourtant je ne fais qu'un seul OpenEventLog...

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    re,
    moi a chaque ecriture dans le journal des evenements ,
    je le referme systematiquement apres avec DeregisterEventSource
    et pour obtenir un handle enregistre j'utilise :RegisterEventSource
    donc ma sequence c'est :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    //........................
    	CString lpSourceName="MyService";
    	HANDLE hEvent;
     
    	hEvent= RegisterEventSource(NULL,lpSourceName);
    	if(hEvent)
    	{
    		CArray<const char *,const char *> arrayArgs;
    		char *parg;
    		while(
    			parg=va_arg( param, char *)
    			)
    			arrayArgs.Add(parg);
     
    		WORD wType=(bError?EVENTLOG_ERROR_TYPE:EVENTLOG_INFORMATION_TYPE);
    		WORD wCategory=0;
    		PSID lpUserSid=NULL;
    		WORD wNumString = arrayArgs.GetSize();
    		DWORD dwDataSize=0;
    		LPVOID lpRawData=NULL;
    		TRACE1("event:%s",arrayArgs[0]);
    		if(!ReportEvent(hEvent,wType,wCategory,nEventId,lpUserSid,wNumString,dwDataSize,arrayArgs.GetData(),lpRawData))
    		{
    			LPVOID lpMsgBuf;
    			FormatMessage( 
    			FORMAT_MESSAGE_ALLOCATE_BUFFER | 
    					FORMAT_MESSAGE_FROM_SYSTEM | 
    					FORMAT_MESSAGE_IGNORE_INSERTS,
    					NULL,
    					GetLastError(),
    					MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
    					(LPTSTR) &lpMsgBuf,
    					0,
    					NULL 
    				);
    			// Process any inserts in lpMsgBuf.
    			// ...
    			// Display the string.
    			TRACE1("event error:%s",(LPCTSTR)lpMsgBuf);			
    			// Free the buffer.
    			LocalFree( lpMsgBuf );
    		}
    		DeregisterEventSource(hEvent);
            }
             va_end(param);
    c'est tiré de mon code brut de fonderie ..


  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'ai essayé aussi avec cette séquence RegisterEventSource - ReportEvent - DeregisterEventSource.

    Mais j'ai le même problème

Discussions similaires

  1. Service WCF et IIS8 (Windows Server 2012)
    Par Alterans dans le forum Windows Communication Foundation
    Réponses: 3
    Dernier message: 18/04/2013, 00h30
  2. Migration 6.5.1 vers Windows Server 2008 R2 64bit
    Par daddyel dans le forum Administration-Migration
    Réponses: 0
    Dernier message: 23/08/2011, 11h53
  3. debogage et portage d'une biblio de linux vers windows
    Par shadowless dans le forum Langage
    Réponses: 3
    Dernier message: 03/05/2011, 09h08
  4. Réponses: 4
    Dernier message: 28/06/2010, 10h55
  5. Migration vers Windows server 2008
    Par zaineb.z dans le forum VB.NET
    Réponses: 0
    Dernier message: 20/04/2009, 17h30

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