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 :

Propriétés de netTcpBinding dans App.config


Sujet :

Windows Communication Foundation .NET

  1. #1
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut Propriétés de netTcpBinding dans App.config
    Bonjour,

    Je travaille sur un middleware et j'utilise WCF.
    sur le client, je fais appel à 4 fonctions me retournant chacune une liste d'objets définie dans le contrat de service.

    Les 3 premières fonctions me retournent des listes comportant au maximum 10 objets. En debug, J'ai bien le résultat attendu (ces fonctions me retournent bien ce que je veux).
    Par contre, la dernière fonction doit me retourner une liste comportant au minimum 70 objets (le traitement sur le serveur dure en moyenne 35 secondes).

    J'ai tracé la fonction sur le serveur et le service. Tout est exécuté... Mais mon client s'arrête me disant que le host est dans l'état faulted.

    Voici une partie de mon fichier de configuration. Pensez-vous que ca puisse venir de là ?
    Je pense que c'est les propriétés de netTcpBinding...
    Si oui, que faut-il que je change ?

    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
    <system.serviceModel>
        <bindings>
          <netTcpBinding>
            <binding name="MyServiceEndPoint" closeTimeout="00:01:00"
              openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
              transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
              hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="524288"
              maxBufferSize="65536" maxConnections="10" maxReceivedMessageSize="65536">
              <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                maxBytesPerRead="4096" maxNameTableCharCount="16384" />
              <reliableSession ordered="true" inactivityTimeout="00:10:00"
                enabled="false" />
              <security mode="Transport">
                <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
                <message clientCredentialType="Windows" />
              </security>
            </binding>
          </netTcpBinding>
        </bindings>
    [...]

    Merci beaucoup.
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  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 : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Augmente la valeur de maxReceivedMessageSize coté client, ou sinon passe en mode streaming (plus compliqué ...).

  3. #3
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    j'ai mis la valeur max (-1) d'un Int64 : 9223372036854775806
    Çaplante dès l'appel de la première fonction...
    J'ai mis alors la valeur max (-1) d'un Int32 : 2147483646
    ça plante à la 4eme fonction...

    Merci
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Bon, le problème est qu'on est pas sur ici qu'il s'agisse d'un problème de taille de donnée.

    Donne le détail de l'exception et des innerexception associées.

  5. #5
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Bonjour,

    J'ai modifié la 4eme fonction qui retourne une liste de 70 objets. Maintenant, elle ne retourne qu'un seul objet.
    Voici le code client pour retourner mes listes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                    using (proxy as IDisposable)
                    {
                        categories = proxy.getListeCategories();
                        grossistes = proxy.getListeGrossistes();
                        fournisseurs = proxy.getListeFournisseurs();
                        produits = proxy.getListeProduits();
                    }
    la derniere fonction s'execute toujours bien sur le serveur.
    En ce qui concerne les exceptions, InnerException est null.
    Voici mon exception :
    29-05-2009 09:49:17 - Error - Il y a eu un problème de communication avec le serveur.System.ServiceModel.CommunicationObjectFaultedException: L’objet de communication System.ServiceModel.Channels.ServiceChannel ne peut pas être utilisé pour la communication car il est dans l’état Faulted.

    Server stack trace:
    à System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan timeout)

    Exception rethrown at [0]:
    à System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
    à System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
    à System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout)
    à System.ServiceModel.ClientBase`1.System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout)
    à System.ServiceModel.ClientBase`1.Close()
    à System.ServiceModel.ClientBase`1.System.IDisposable.Dispose()
    à WCFClient.ClientProgram.Main(String[] args) dans D:\Middleware\src\main\csharp\WCFClient\ClientProgram.cs:ligne 55
    Merci !
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  6. #6
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Trace de la pile interne :
    System.ServiceModel.CommunicationException: La connexion de socket a été abandonné. Ceci peut être causé par une erreur lors du traitement de votre message, par le dépassement du délai d’attente de réception par l’hôte distant ou par un problème de ressource réseau sous-jacent. Le délai d’attente de socket local était « 00:00:59.9060000 ». ---&amp;gt; System.IO.IOException: L'opération de lecture a échoué, consultez l'exception interne. ---&amp;gt;
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  7. #7
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par slim Voir le message
    la derniere fonction s'execute toujours bien sur le serveur.
    Ok mais tu es sur qu'elle ne tourne pas en boucle pas exemple ?

  8. #8
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Au depart, quand j'avais les 70 objets, j'avais un foreach. Meme avec le foreach, le service sort de la boucle.
    Après, j'ai instancié un seul produit (sans aucune boucle) que j'ai tracé (j'ai bien ce produit là dans le log). Ce produit doit normalement etre retourné au client. Mais le client s'arrete...
    je crois que un probleme de timeout.
    Server stack trace:
    à System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan timeout)
    Merci.
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  9. #9
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Ok.
    Désolé...
    J'avais un attribut de l'objet à null sur le serveur.
    Sinon, ca marche...

    Merci.
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/02/2009, 13h00
  2. Réponses: 1
    Dernier message: 07/07/2008, 10h41
  3. retiré le nom base de donnée dans app.config
    Par jeepibmx dans le forum VB.NET
    Réponses: 1
    Dernier message: 28/01/2008, 19h38
  4. Réponses: 8
    Dernier message: 06/08/2007, 11h32
  5. Réponses: 2
    Dernier message: 23/03/2007, 14h00

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