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

VB.NET Discussion :

App.Config non pris en compte dans une DLL pour changer URL d'un WebService


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 125
    Points : 66
    Points
    66
    Par défaut App.Config non pris en compte dans une DLL pour changer URL d'un WebService
    Bonjour à vous,

    J'essaye de mettre en paramètre l'adresse URL d'un WebService utilisé dans un programme VB.Net, car entre les développements et la production, le serveur des WS sera différent et devra être modifiable par les utilisateurs.

    J'ai cherché sur le Net, et j'ai trouvé ça :

    Voici quelques liens qui expliquent comment utiliser une URL dynamique pour un WebService :

    http://support.microsoft.com/kb/316928
    http://msdn.microsoft.com/en-us/libr...(v=vs.71).aspx
    http://www.knowdotnet.com/articles/d...rviceurls.html
    http://bytes.com/topic/net/answers/425972-dynamic-url

    En résumé, ça dit de passer le Web Référence en Dynamique. Il l'est par défaut, donc c'est OK.

    Ensuite, je vérifie dans les paramètres de mon application qu'il y a bien un parametre TOTO_WS_TOTO_AnbExportService qui est de type "(URL de service Web"). Et sa portée est "Application".

    Je vérifie enfin que dans mon fichier app.config, je retrouve bien l'URL du WS de Dev. :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <applicationSettings>
        <TOTO.My.MySettings>
             <setting name="TOTO_WS_TOTO_AnbExportService" serializeAs="String">
    	      <value>http://178.100.100.136:2002/AnbExportService</value>
             </setting>
          </TOTO.My.MySettings>
    </applicationSettings>
    Jusque là, c'est bon.

    Le problème, c'est que quand je modifie le fichier app.config, le programme ne prend pas en compte les changements, mais garde l'ancienne URL.

    Qu'est-ce que je fais de mauvais pour que ça ne fonctionne pas ? D'après les liens donnés plus haut, ça devrait passer tout seul.

    Ben non, pas chez moi ...

    Merci pour votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Bonjour,

    attention, dans quel fichier regardez-vous ?
    Ne regardez-vous pas par hasard le fichier avec les paramètre par défaut ?
    Le Porc est un loup pour le Porc.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 125
    Points : 66
    Points
    66
    Par défaut
    J'ai regardé (et modifié) tous les fichiers *.config.

    Dans mon répertoire de code VB.net, j'ai plusieurs fichiers *.config :
    - Le fichier app.config qui est à la racine de mon projet (TOTO)*
    - le fichier TOTO.dll.config qui se trouve dans le sous répertoire bin, avec ma DLL (car mon projet est une DLL).

    J'ai modifié ces 2 fichiers, pour voir. Aucune réaction lors du lancement du programme (ou plutôt du lancement de la DLL par le programme qui l'utilise).

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 125
    Points : 66
    Points
    66
    Par défaut
    Hum ... J'ai refais un projet super simple, avec une seule forme, un bouton Fermer, et j'affiche à l'ouverture de la forme la valeur du paramètre URL du WebService.
    Et là, quand je modifie le fichier TEST.exe.Config, ça prend bien en compte les changements que je fais dans le fichier.

    Donc, je me demande si le problème ne vient pas du fait que si ça marche avec un EXE, ça ne marche pas forcément avec une DLL générée par VB.Net.
    Pourtant, j'ai bien un fichier TOTO.dll.config qui est créé par VB.Net avec mon projet TOTO.

    Est-ce que l'un de vous a déjà utilisé avec succès un fichier app.config dans une DLL créée en VB.Net ?


    Merci d'avance.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 125
    Points : 66
    Points
    66
    Par défaut
    Il semble que la solution soit la suivante :

    Dans le fichier Setting.Designer.vb, le code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <Global.System.Configuration.ApplicationScopedSettingAttribute(),  _
            Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
            Global.System.Configuration.SpecialSettingAttribute(Global.System.Configuration.SpecialSetting.WebServiceUrl),  _
            Global.System.Configuration.DefaultSettingValueAttribute("http://78.100.36.136:2002/AnbExportService")>  _
           Public ReadOnly Property TOTO_WS_TOTO_AnbExportService() As String
                Get
                    Return CType(Me("TOTO_WS_TOTO_AnbExportService"),String)
                End Get
            End Property
    Or cette propriété est en ReadOnly.

    J'ai donc essayé de supprimer le mot ReadOnly, et d'ajouter un Set :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    '(le début est le même)
    Public Property TOTO_WS_TOTO_AnbExportService() As String
                Get
                    Return CType(Me("TOTO_WS_TOTO_AnbExportService"), String)
                End Get
     
                Set(ByVal value As String)
                    Me("TOTO_WS_TOTO_AnbExportService") = value
                End Set
    Ensuite, lors de l'ouverture du programme, je vais chercher une chaîne de caractère dans un fichier Texte, et je modifie la valeur du paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.Setting.TOTO_WS_TOTO_AnbExportService = lire_Fichier("Nouvelle_URL")
    Et ça fonctionne.

    Maintenant, si M. Guillaume Portail voudrait bien m'expliquer pourquoi son fichier MonApp.dll.config n'est pas lu par la DLL, comme le fait un EXE, ce serait gentil de sa part.

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

Discussions similaires

  1. Attribut font-size non pris en compte dans un tableau
    Par malta dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 20/09/2008, 13h58
  2. index non pris en compte dans inner select
    Par eponette dans le forum SQL
    Réponses: 2
    Dernier message: 12/11/2007, 12h47
  3. Réponses: 1
    Dernier message: 08/08/2007, 11h26
  4. Accents non pris en compte dans les requêtes SELECT
    Par YanK dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/08/2005, 10h57

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