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

IIS Discussion :

Problème avec les CGI MySQL en C++ sous IIS7 - Vista


Sujet :

IIS

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Problème avec les CGI MySQL en C++ sous IIS7 - Vista
    L'utilisation de la librairie MySQL libmysql.dll dans un CGI en C++ sous Vista / IIS7 provoque le message suivant :
    runtime error R6030 - CRT not initialized

    Voici le code qui génère ce message:

    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
    #include "stdafx.h"
    #include "TestCGI.h"
    
    #include "mysql.h"
    
    
    int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {
    		printf("Content-Type: text/html\n\n");
    		printf("\n<html><body>Hello world 2</body></html>");
    		
    		mysql_init((MYSQL*) 0); // Appel MySQL, qui génère le message "runtime error R6030 - CRT not initialized" 
    
    		return 0;
    }

    Ce code fonctionne bien sûr sans problème avec IIS6 sous XP.
    Il utilise la librairie libmysql.dll de MySQL 5.05 (même résultat avec la 5.1).

    Je soupçonne un problème de protection Vista plutôt qu'un problème IIS7 car ce code ne fonctionne pas non plus avec un autre serveutr Web comme AbyssWS. Le message d'erreur trouvé dans la log est alors "Broken pipe".

    Si vous avez le même problème dîtes le moi, et si vous avez la solution ma gratitude éternelle vous est acquise !...


    Emmanuel

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Et si tu lances le programme directement, sans passer par un serveur web ?
    Boost ftw

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci de t'intéresser à mon problème, je commençais à me sentir un peu seul...
    Si je le lance directement ça marche sans problème, il m'affiche bien "Hello Word", sans aucun message d'erreur.

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    A priori, IIS lance le code sous un utilisateur spécial, différent de l'utilisateur loggé. Peut-être le problème est-il lié ?

    Peut-tu monter le code sous le serveur de développement livré avec Visual Studio, qui lui ne gère pas ces aspects, pour voir ? Ou alors dans l'autre sens, lancer le script après t'être loggé avec le même utilisateur que IIS ?

    Autrement, tu auras peut-être plus de chance en cherchant sur le forum IIS ?
    Forum des développeurs > Hardware, Systèmes et Logiciels > Windows > IIS
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Effectivement, c'est la bonne voie : en remplaçant IUSR (l'utilisateur IIS7) par mon utilisateur habituel ça marche ! Bravo pour cette excellente idée.

    Par contre j'aimerai bien me connecter sous IUSR pour voir ce qui se passe et comprendre en quoi ça bloque pour libmysql.dll mais je ne sais pas ou trouver le mot de passe...on ne le trouve plus dans la gestion des utilisateurs comme sous XP...?!.. Tu aurais une idée la dessus aussi ?

    Merci encore pour ton aide

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Mmm, aucune idée...

    Par contre, question bête : Dans quelle répertoire est cette DLL ? Ca peut être juste une histoire de path. J'ai déjà du faire une magouille genre mettre la DLL en delay load dans le programme, et au début du main modifier la variable path pour qu'elle contienne le chemin de la DLL.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    La DLL se trouve dans le même répertoire que le CGI, il ne devrait donc pas y avoir de problème d'autorisation. Il doit plutôt se trouver (le problème) entre cette DLL et le serveur MySQL.
    J'ai trouvé des infos sur l'utilisateur IUSR de IIS7 : c'est un nouveau type d'utilisateur système sans mot de passe (comment ça peut marcher ??) et il ne semble pas possible de se connecter sous ce compte ni même de faire un "runas /user:IUSR testcgi.exe" sous l'invite de commande.
    J'ai donc créé un autre utilisateur IUSR_Nomdela machine (comme sous XP) et j'ai donné ce compte à IIS7 ( Default Web Site / Authentication).
    Malheureusement ça ne marche pas plus, même si je le met dans le groupe des Administrateurs. Finalement, il n'y a qu'avec mon login (Administrateur aussi) que ça marche. Va comprendre...
    Mais c'est vrai que tout ça concerne davantage IIS et MySQL que le C++. Mon premier post était dans le groupe MySQL, le modérateur a considéré que ça concernait davantage le C++ et m'a mis dans ce groupe mais finalement ce n'était pas justifié. Comment faire pour déplacer la discussion dans le groupe IIS ?

  8. #8
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par vilmin Voir le message
    Comment faire pour déplacer la discussion dans le groupe IIS ?
    Il n'y a qu'à demander...
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. Problème avec les CGI et les Cookies.
    Par Invité dans le forum Ada
    Réponses: 8
    Dernier message: 29/06/2012, 15h45
  2. Problème avec les ombres de type Stencil sous Ogre
    Par Invité dans le forum Moteurs 3D
    Réponses: 3
    Dernier message: 30/09/2011, 23h38
  3. [MySQL] Problèmes avec les procédures stockées sous mysql
    Par GoTrUnKo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/11/2008, 22h00
  4. Problème avec les classes HttpWebRequest et HttpWebResponse sous C#
    Par zouzoulikou dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 14/08/2007, 01h46

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