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

ASP.NET Discussion :

Problème avec fonction GetPrivateProfileInt


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Par défaut Problème avec fonction GetPrivateProfileInt
    Bonjour,

    J'ai un fichier ini que je lis pour récupérer quelques paramétrage. Cependant, dans ma fonction de récupération de la valeur d'une clé, j'ai l'erreur suivante lorsque j'appel fonction GetPrivateProfileInt :

    System.AccessViolationException was unhandled by user code
    Message="Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
    Source="TEC_NAVWebService"
    StackTrace:
    at TEC_NAVWebService.Service1.GetPrivateProfileInt(String& lpApplicationName, String& lpKeyName, Int64 nDefault, String& lpFileName) at TEC_NAVWebService.Service1.GetIniParameter(String Key) in C:\WORK\PROJECTS\NEWCOM\WEB SERVICE NAV\TEC_NAVWebService\TEC_NAVWebService\Service1.asmx.vb:line 105 at TEC_NAVWebService.Service1.GetItemInfosCust(XmlDocument XItemCustInfos) in C:\WORK\PROJECTS\NEWCOM\WEB SERVICE NAV\TEC_NAVWebService\TEC_NAVWebService\Service1.asmx.vb:line 43 at WebApplication1._Default.GetItemInfos(Object sender, EventArgs e) in C:\WORK\PROJECTS\NEWCOM\WEB SERVICE NAV\WebApplication1\WebApplication1\Default.aspx.cs:line 40 at System.Web.UI.WebControls.Button.OnClick(EventArgs e) at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
    InnerException:
    Cette erreur ne survient pas lorsque la fonction GetPrivateProfileString est appelée !

    Voici le code de ma fonction :
    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
    Private Function GetIniParameter(ByVal Key As String) As String
            Dim projDir As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
            Dim filePath As String = Mid(projDir, 7, Len(projDir) - 6) + "\TEC_WebServ.ini"
            Dim StrBuild As New System.Text.StringBuilder(32768)
            Dim IntValue As Integer
            Dim StrValue As String
            If Key = "MSMQReceiverTimeSpanSec" Then
                IntValue = GetPrivateProfileInt("Setup", Key, -1, filePath)
                StrValue = IntValue.ToString
            Else
                GetPrivateProfileString("Setup", Key, "", StrBuild, 32768, filePath)
                StrValue = StrBuild.ToString
            End If
     
            Return StrValue
    Quelqu'un a-t-il une idée de quoi ça pourrait venir ? Je cherche mais ne trouve rien et suis vraiment bloqué par ce problème.

    Merci d'avance de votre aide.

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut


    Pourquoi utilises tu encore les fichiers INI ?

    Il y a une raison particulière d'employer cette vieillerie ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Par défaut
    La raison principale est que je travail en collaboration avec une autre équipe. Moi je m'occupe du webservice et eux de l'interface et de l'infrastructue. Et ils veulent un fichier ini pour le paramétrage.

    En ce qui me concerne, c'est ce que je connais de mieux. Encore jamais appliqué et utilisé les paramètres de projets. Et comme le budget du projet et trop court, je n'ai pas le temps de m'y pencher pour l'instant. D'autant plus que les autres impliqués dans le projet préfère ceci

    Une aide serais très précieuse. Merci

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Si ça t'intéresse j'avais publié une petite classe pour manipuler des fichiers INI :
    http://www.developpez.net/forums/d67...-fichiers-ini/

    Personnellement, je préfère ça à l'utilisation d'API natives dont on sait pas très bien ce qu'elles font...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 57
    Par défaut
    salut

    aucune idée d'ou vient ton problème de mémoire

    alors juste pour te débloquer

    si à la place de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     If Key = "MSMQReceiverTimeSpanSec" Then
                IntValue = GetPrivateProfileInt("Setup", Key, -1, filePath)
                StrValue = IntValue.ToString
            Else
                GetPrivateProfileString("Setup", Key, "", StrBuild, 32768, filePath)
                StrValue = StrBuild.ToString
            End If
    tu faisais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    GetPrivateProfileString("Setup", Key, "", StrBuild, 32768, filePath)
    StrValue = StrBuild.ToString
     
    If Key = "MSMQReceiverTimeSpanSec" AND StrValue = "" Then
    StrValue  = "-1"
    end if

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Par défaut
    Oui, c'est ce que j'ai fait pour l'instant. Mais ça revient à insérer du code en dure. Et j'ai besoin de ce paramètre car il peut être amener à être changer. J'utilise cet integer pour définir un temps de réponse en seconde pour mon service web via MSMQ. Et tout dépend les perfs et autres paramètre il me faudra l'adapter. Et Comme je veux éviter de devoir à chaque fois recompiler mon WebService et renvoyer la .dll sur site, je préfère uniquement modifié un paramètre dans le fichier .ini !

    Mais pour l'instant je fais comme ça ! Mais une solution serait vraiment la bienvenue. Sinon il faudra programmer à la sauvage. Soit en dure !

Discussions similaires

  1. Problème avec fonctions et string/char
    Par vdumont dans le forum C++
    Réponses: 6
    Dernier message: 08/04/2006, 16h54
  2. Problème avec fonction
    Par Goundy dans le forum C
    Réponses: 24
    Dernier message: 01/10/2005, 20h17
  3. [MFC][WINSOCK] Problème avec fonction recv
    Par Le Farfadet dans le forum MFC
    Réponses: 4
    Dernier message: 23/09/2005, 11h00
  4. Problème avec fonction d'envoie de mail
    Par zyg dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 23/02/2005, 08h48
  5. [Requête] Problème avec fonction "DATE_FORMAT()"
    Par sekiryou dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/01/2005, 21h52

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