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

Windows Communication Foundation .NET Discussion :

app.config dynamique non reconnu


Sujet :

Windows Communication Foundation .NET

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Points : 48
    Points
    48
    Par défaut app.config dynamique non reconnu
    Bonjour,

    J'aimerais que lorsque je lance mon application, cette dernière me crée le fichier XML app.config permettant les connexions aux objets WCF sur un réseau local.

    Si j'écris en dur un app.config que j'ajoute au projet, cela marche. Maintenant j'aimerais que cet app.config s'écrive tout seul au lancement de mon application et que lors de la création de mon service, il utilise l'app.config créé précédemment.

    Je crée donc un fichier XML avec les information suivant correspondant à mon app.config

    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
    Postes.Items.Add("PIWKS267");
    allPostesAndIp.Add("PIWKS267", "localhost");
    Postes.Items.Add("Poste2");
    allPostesAndIp.Add("Poste2", "localhost");
     
    XmlTextWriter config = new XmlTextWriter("app.config",System.Text.Encoding.UTF8);
    config.Formatting = Formatting.Indented;
    config.WriteStartDocument();
    config.WriteStartElement("configuration");
    config.WriteStartElement("system.serviceModel");
    config.WriteStartElement("bindings");
    config.WriteStartElement("basicHttpBinding");
    config.WriteStartElement("binding");
    config.WriteAttributeString("name", "wsHttpBinding");
    config.WriteAttributeString("maxReceivedMessageSize", "2147483647");
    config.WriteStartElement("readerQuotas");
    config.WriteAttributeString("maxArrayLength", "2147483647");
    config.WriteEndElement();
    config.WriteEndElement();
    config.WriteEndElement();
    config.WriteEndElement();
    config.WriteStartElement("client");
    foreach (string computer in allPostesAndIp.Keys)
    {
        config.WriteStartElement("endpoint");
        config.WriteAttributeString("address", "http://"+allPostesAndIp[computer]+":8018/Communication");
        config.WriteAttributeString("binding", "basicHttpBinding");
        config.WriteAttributeString("contract", "Communication.ICommunication");
        config.WriteAttributeString("name", computer);
        config.WriteAttributeString("bindingConfiguration", "wsHttpBinding");
        config.WriteEndElement();
    }
    config.WriteEndElement();
    config.WriteEndElement();
    config.WriteEndElement();            
    config.Flush(); //vide le buffer
    config.Close(); // ferme le document
    est-ce bien comme cela qu'il faut faire ou faut-il qu'il existe déjà un app.config dans mon projet que je mets à jour ?

    Merci de votre aide

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Points : 48
    Points
    48
    Par défaut
    Au final, je me suis séparé de mon app.config et je configure ma connexion dans le code avec

    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
    BasicHttpBinding binding = new BasicHttpBinding();
    // I think most (or all) of these are defaults--I just copied them from app.config:
    binding.SendTimeout = TimeSpan.FromMinutes(1);
    binding.OpenTimeout = TimeSpan.FromMinutes(1);
    binding.CloseTimeout = TimeSpan.FromMinutes(1);
    binding.ReceiveTimeout = TimeSpan.FromMinutes(10);
    binding.AllowCookies = false;
    binding.BypassProxyOnLocal = false;
    binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
    binding.MessageEncoding = WSMessageEncoding.Text;
    binding.TextEncoding = System.Text.Encoding.UTF8;
    binding.TransferMode = TransferMode.Buffered;
    binding.UseDefaultWebProxy = true;
    binding.MaxReceivedMessageSize = 2147483647;
     
    EndpointAddress endpointAdress = new EndpointAddress("http://localhost:8018/Communication");
     
    myChannelFactory = new ChannelFactory<ICommunication>(binding, endpointAdress);

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 62
    Points : 38
    Points
    38
    Par défaut lol
    on est jamais mieux servi que par soi-même lol

    bon courage pour la suite,
    damien

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/06/2012, 21h55
  2. Réponses: 4
    Dernier message: 20/12/2011, 12h00
  3. Réponses: 11
    Dernier message: 29/07/2009, 10h31
  4. Réponses: 0
    Dernier message: 22/07/2009, 16h31
  5. Réponses: 1
    Dernier message: 08/07/2009, 11h38

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