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

Services Windows Discussion :

Client plus reconnu après déploiement du host sur 1 server [Débutant]


Sujet :

Services Windows

  1. #1
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut Client plus reconnu après déploiement du host sur 1 server
    Bonjour

    tout fonctionne en local pour la partie AB de mon WCF ABC
    Le contrat n'est pas finalisé quant au contenus du message, mais ceci es non bloquant
    En local j'utilise donc le EndPoint : ConfigurationTcpCurrency

    Je déploie sur un serveur, en utilisant mon deuxième EndPoint : ConfigurationTcp221

    Du COTE CLIENT :

    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
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.serviceModel>
        <client>
          <!--endPoint to use for local test-->
    
          <endpoint
            address="net.tcp://localhost:8732/AAMZipSearch/Service1"
            binding="netTcpBinding"
            contract="AAMZipSearch.IService1"
            name="ConfigurationTcpCurrency">
          </endpoint>
    
          <!--endPoint to use for server 221-->
    
          <endpoint
            address="net.tcp://10.18.186.221:8732/AAMZipSearch/Service1"
            binding="netTcpBinding"
            contract="AAMZipSearch.IService1"
            name="ConfigurationTcp221">
          </endpoint>
        </client>
      </system.serviceModel>
    </configuration>
    dans le code, j'ai aussi changé le endpoint en utilsant le deuxième NAME

    je n'ai rien modifié du coté serveur ...

    et le message d'erreur :
    Le serveur a rejeté les informations d'identification du client
    Précision :

    Le serveur n'est pas sur le même domaine, mais est accessible en WorkGroup (ceci de manière volontaire)
    Pas de souci de connexion avec le serveur, en workGroup, dans windows.

    Ai-je aussi une modification à effectuer du coté serveur ?

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    C'est déjà compliqué de gérer les authenthifications dans certains cas sur le même domaine alors si tu commances à rajouter des workgroups dans différents domaines, tu vas t'amuser

    As-tu la possibilité d'ajouter un lien de confiance (trust relationship) entre les deux domaines ? Ce serait je pense plus simple à gérer.

    [EDIT] : regarde les solutions apportées ici.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut
    euhhh je ne sais pas :

    1 - Ce WCF doit fonctionner plus tard sur un PC lambda, sans forcément de domaine, ni d'AD, ni rien ... pour des clients internationaux qui n'ont pas forcément de budget pour cette panoplie d'outils Microsoft ... sorry, je dois faire avec

    2. Du coup, sans savoir ce que c'est, mais en devinant son utilité, je dirai que le lien de confiance serait juste un workaround(*) dans mon cas ... càd que je souhaite plutôt trouver la solution la plus simple possible, sans ajouter autre chose, vu que d'autres WCF existants fonctionnent effectivement sans rien d'autre dans cette même configuration ...

    Désolé donc si cette précision stoppe un peu l'élan de ta réponse dont je te remercie néanmoins

    Alors, non, je n'ai pas la possibilité d'ajouter un lien de confiance ...


    (*) solution de contournement

  4. #4
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut
    J'ai une piste :

    Vu que le Serveur n'est pas sur le même domaine et qu'il est sur un workGroup sans lien de sécurité et de partage
    Pour y accéder afin de déployer (copier) mon WCF host, j'ai du faire :

    Créer un enregistrement "de routage" en local sur ma machine sans affecter ainsi la table de routage de mon réseau, avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    route –p add 10.18.19.20 mask 255.255.255.0 10.18.19.21
    par exemple

    Remarque :

    Ceci fonctionne sans souci, en mode permanent ou non. (paramètre -p)
    Si non permanent, je dois réinscrire cet enregistrement en local (sur mon poste de dév qui me sert aussi de client pour mes tests) à chaque redémarrage du PC. A automatiser plus tard dans un batch ou à rendre permanent (en ayant les droits d'administration du poste en local)

    Du coup, j'ai accès à ce PC distant comme s'il était sur mon domaine, certes avec un manque de sécurité et d'autres détails ...

    La question :
    WCF client utilise t-il alors aussi ce droit d'accès "manuel" ?
    Ou devrai-je cré cet accès dans la configuratin du EndPoint ? si cela est possible bien sûr ...

    Je cherche une autre piste dans le code des WCF client existants mais assez anciens (2005 ...)

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Le problème c'est qu'à force de faire des bidouilles comme ça, il devient compliqué de t'aider parce que ça ne rentre plus dans des choses standards qu'on connait. Il faut à chaque fois retracer toutes tes manipulations pour savoir quoi te répondre, et ce n'est pas faisable car ça prend trop de temps, donc tu vas recevoir de moins en moins d'aide...

    Bon courage en tout cas
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut
    merci, je vois le souci
    C'était juste un complément en // en réponse aux questions posées ...
    Je comprends; devrais-je effacer mon dernier post ?

    Sinon, en lisant les liens fournis, je vois qu'effectivement que le user n'est pas configuré :

    Dans le binding coté host, j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
              <security mode="Message">
                <message clientCredentialType="Windows" />
              </security>
    et rien du coté client, juste les endpoints :

    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
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.serviceModel>
        <client>
          <!--endPoint to use for local test-->
          <endpoint
            address="net.tcp://localhost:8732/AAMZipSearch/Service1"
            binding="netTcpBinding"
            contract="AAMZipSearch.IService1"
            name="ConfigurationTcpCurrency">
          </endpoint>
          <!--endPoint to use for server 221-->
          <endpoint
            address="net.tcp://10.18.186.221:8732/AAMZipSearch/Service1"
            binding="netTcpBinding"
            contract="AAMZipSearch.IService1"
            name="ConfigurationTcp221">
          </endpoint>
        </client>
      </system.serviceModel>
    </configuration>
    authentification Windows ... donc je dois aussi voir du côté client pour cela

  7. #7
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Hepil Voir le message
    Je comprends; devrais-je effacer mon dernier post ?
    Non non, n'efface rien. Je voulais juste te mettre en garde que tu pars en terrain glissant, et que plus tu vas t'y enfoncer, moins nous pourrons t'aider. Déjà là c'est compliqué car il faut intégrer le fait que tu ne soit pas sur le même domaine et que tu passes par un workgroup, que tu as rajouté une route pour le DNS, etc.

    Citation Envoyé par Hepil Voir le message
    Sinon, en lisant les liens fournis, je vois qu'effectivement que le user n'est pas configuré :

    Dans le binding coté host, j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
              <security mode="Message">
                <message clientCredentialType="Windows" />
              </security>
    et rien du coté client, juste les endpoints :

    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
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.serviceModel>
        <client>
          <!--endPoint to use for local test-->
          <endpoint
            address="net.tcp://localhost:8732/AAMZipSearch/Service1"
            binding="netTcpBinding"
            contract="AAMZipSearch.IService1"
            name="ConfigurationTcpCurrency">
          </endpoint>
          <!--endPoint to use for server 221-->
          <endpoint
            address="net.tcp://10.18.186.221:8732/AAMZipSearch/Service1"
            binding="netTcpBinding"
            contract="AAMZipSearch.IService1"
            name="ConfigurationTcp221">
          </endpoint>
        </client>
      </system.serviceModel>
    </configuration>
    authentification Windows ... donc je dois aussi voir du côté client pour cela
    Oui il faut trouver la bonne config pour l'authentification. Je n'ai jamais travaillé sur ce genre de config hybride (domaine + workgroup) donc je ne pourrais pas t'aider plus loin.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  8. #8
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut
    sur le client, j'ai ajouté la config identique au serveur pour la partie sécurité, à savoir :
    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
    ...
          <endpoint
            address="net.tcp://10.18.186.221:8732/AAMZipSearch/Service1"
            binding="netTcpBinding"
            contract="AAMZipSearch.IService1"
            name="ConfigurationTcp221"
            bindingConfiguration="ClientCfg221" >
          </endpoint>
        </client>
        <bindings>
          <netTcpBinding>
            <binding name="ClientCfg221">
              <security mode="Message">
                <message clientCredentialType="Windows"/>
              </security>
            </binding>
          </netTcpBinding>
        </bindings>
      </system.serviceModel>
    </configuration>
    Du coup, le message d'erreur n'est plus le même :
    {"La connexion de socket a été abandonnée. 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.8999900'."}
    Il ne s'agit peut-être pas du user en fait mais du message maintenant ...

  9. #9
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut
    Citation Envoyé par DotNetMatt Voir le message
    Non non, n'efface rien. Je voulais juste te mettre en garde que tu pars en terrain glissant, et que plus tu vas t'y enfoncer, moins nous pourrons t'aider. Déjà là c'est compliqué car il faut intégrer le fait que tu ne soit pas sur le même domaine et que tu passes par un workgroup, que tu as rajouté une route pour le DNS, etc.


    Oui il faut trouver la bonne config pour l'authentification. Je n'ai jamais travaillé sur ce genre de config hybride (domaine + workgroup) donc je ne pourrais pas t'aider plus loin.
    Ok merci, je le laisse, en complément

    Pour la partie hybride (domaine + Workgroup ) je pense qu'on peut en faire abstraction à présent, car les communications passent ...

    Grâce à tes simples réponses, tu m'as bien aidé et j'avance sereinement ... reste là stp

  10. #10
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut
    En mettant les points d'arrêts sur le coté client, je vois que le ChannelFactory s'ouvre correctement
    L'exception émane du service (contrat), donc du message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                    myService = myChannelFactory.CreateChannel();
                    this.lblResult.Text = @"WCF Channel open ...";
    
                    var listeReturned = myService.VersionListMain(5);               // contents the list of folders for category N°5 (it's AAM)
                    Message.Text = Convert.ToString(listeReturned.Count());         // display the amount of items in this list
    
                    myChannelFactory.Close();                                       // closing of communication channel
                    this.lblResult.Text = @"WCF Channel closed ...";

  11. #11
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut Evolution
    A présent j'ai un code identique dans la configuration liée à App.config, pour le Host (distant) et pour le client (local)

    à savoir :

    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
        <bindings>
          <netTcpBinding>
            <binding name="ClientCfg221"
                     openTimeout="00:01:00"
                     closeTimeout="00:01:00"
                     sendTimeout="00:10:00"
                     receiveTimeout="0:10:00"
                     transactionFlow="false"
                     transferMode="Streamed"
                     transactionProtocol="OleTransactions"
                     hostNameComparisonMode="StrongWildcard"
                     listenBacklog="10"
                     maxBufferPoolSize="524288"
                     maxBufferSize="2147483647"
                     maxConnections="10"
                     maxReceivedMessageSize="2147483647">
              <readerQuotas maxDepth="32"
                            maxStringContentLength="2147483647"
                            maxArrayLength="2147483647"
                            maxBytesPerRead="2147483647"
                            maxNameTableCharCount="2147483647" />
              <reliableSession ordered="true"
                               inactivityTimeout="23:59:59"
                               enabled="false" />
              <security mode="Message">
                <message clientCredentialType="Windows"/>
              </security>
            </binding>
          </netTcpBinding>
        </bindings>
    du coup le message d'erreur est à présent :

    {"La liaison ('NetTcpBinding','http://tempuri.org/') prend charge une diffusion en continu qui ne peut pas être configurée en combinaison avec le niveau de sécurité des messages. Envisagez de sélectionner un autre mode de transfert ou de choisir la sécurité de niveau transport."}
    mais de suite au niveau du CreateChannel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                    myChannelFactory = new ChannelFactory<IService1>("ConfigurationTcp221");
                    
                    myService = myChannelFactory.CreateChannel();
                    this.lblResult.Text = @"WCF Channel open ...";
    
                    var listeReturned = myService.VersionListMain(5);               // contents the list of folders for category N°5 (it's AAM)
                    Message.Text = Convert.ToString(listeReturned.Count());         // display the amount of items in this list
    
                    myChannelFactory.Close();                                       // closing of communication channel
                    this.lblResult.Text = @"WCF Channel closed ...";
                }

    Ceci n'est pas forcément bon signe ... je devrais apparemment avoir 2 erreurs à présent, car même en host local ça ne marche plus ...

    Quel est le paramètre bloquant ?

  12. #12
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut
    J'ai retrouvé une solution stable en local :

    En ne jouant que sur la balise <security> :

    sur le host :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
              <security mode="None"></security>

    sur le client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
              <security mode="None">
                <transport clientCredentialType="Windows"
                           protectionLevel="EncryptAndSign" />
                <message clientCredentialType="Windows" />
              </security>
    Ceci fonctionne en local (host et client)

    A voir à présent avec le host distant ...

  13. #13
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut
    Après déploiement (copie) de la nouvelle configuration (post précédent) sur le host distant (le serveur), le client me mets l'erreur suivante :


    {"Le mode de tramage .Net utilisé n'est pas pris en charge par 'net.tcp://10.18.186.221:8732/AAMZipSearch/Service1'. Pour plus d'informations, consultez les journaux du serveur."}
    Erreur levée au niveau du contrat, ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                    myService = myChannelFactory.CreateChannel();
                    this.lblResult.Text = @"WCF Channel open ...";
    
                    var listeReturned = myService.VersionListMain(5);               // contents the list of folders for category N°5 (it's AAM)
                    Message.Text = Convert.ToString(listeReturned.Count());         // display the amount of items in this list
    
                    myChannelFactory.Close();                                       // closing of communication channel
                    this.lblResult.Text = @"WCF Channel closed ...";
    Donc l'erreur du ChannelFactory doit être éradiquée ...

    Le mode de tramage est géré par quelle balise ?
    celle-ci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    transferMode="Streamed"

    je cherche ...

  14. #14
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut
    Si quelqu'un pouvait me confirmer les points suivants, ça m'aiderait beaucoup :

    - malgré ces erreurs, la connexion est établie
    - donc pas de souci de réseau
    - donc pas de user demandé ni de mot de passe. Le user est connecté


  15. #15
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut
    Selon cette erreur

    {"Le mode de tramage .Net utilisé n'est pas pris en charge par 'net.tcp://10.18.186.221:8732/AAMZipSearch/Service1'. Pour plus d'informations, consultez les journaux du serveur."}
    et des infos comme ici, je conviens que le souci peut venir du stream

    Dans mon contrat (iService), j'ai opté pour un message, avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            [MessageHeader()] // buffered
            [MessageBodyMember()] // streamed
    Dans la configuration (App.config du host), j'ai bien mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                     transferMode="Streamed"
    Automatiquement, les MessageHEader resteront bufferisé
    et le MessageBOdyMember sera alors Streamé

    mais faut-il aussi mettre cette configuration dans l'App.config du projet Service1 qui implémente l'interface iService1 ?
    Mon host est un autre projet.
    Ces 2 projets (service et host) sont dans une seule solution
    Images attachées Images attachées  

  16. #16
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut
    je vire le mode stream et je mets tout en buffer :

    pour le host :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                     transferMode="Buffered"
    et iservice1: (l'interface du service WCF)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
            [MessageBodyMember()] // streamed
            public System.IO.BufferedStream DataFile { get; set; }

    pour le client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                     transferMode="Buffered"

    Ceci fonctionne à nouveau en local

    voir en déployant (copiant) sur le host distant ...

  17. #17
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut Réflexion
    mais pourquoi ai-je ce problème en distant et pas en local ?

    netTcpBinding ne serait-il pas testé par Microsoft en local ?
    Du coup je n'ai pas les mêmes tests ni les mêmes erreurs ?

    Car toutes mes solutions précédentes fonctionnent bien en local !!!!
    Pourquoi le stream en mode streamé fonctionne-t-il en local et pas en distant ?


    Zarbi chez Krosoft qf même

  18. #18
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut
    le service démarre, mais erreur sur le client :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"La connexion de socket a été abandonnée. 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:09:59.9640000'."}

  19. #19
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut
    L'erreur viendrait déjà de cette ligne ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <configuration>
      <configSections>
        <section name="UploadDirectory5" type="E:\P320Share\ccad\aam\pf4log\1"/>
      </configSections
    ...>
    rien à voir avec le WCF mais avec le contrat ET c'est bloquant

  20. #20
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Points : 188
    Points
    188
    Par défaut
    L'erreur viendrait déjà de cette ligne ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <configuration>
      <configSections>
        <section name="UploadDirectory5" type="E:\P320Share\ccad\aam\pf4log\1"/>
      </configSections
    ...>
    rien à voir avec le WCF mais avec le contrat ET c'est bloquant

    Je le remplace par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      <appSettings>
        <add key="UploadDirectory5" value="E:\P320Share\ccad\aam\pf4log\1"/>
      </appSettings>

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. MicroSD plus reconnue après formatage en fat32
    Par tib0b57 dans le forum Windows 7
    Réponses: 2
    Dernier message: 25/10/2012, 10h26
  2. Déploiement application MVC3 sur windows server 2003
    Par alexxxx69 dans le forum ASP.NET MVC
    Réponses: 4
    Dernier message: 13/12/2011, 17h02
  3. [Débutant] Déploiement Site MVC sur Windows Server 2008
    Par supermouton dans le forum ASP.NET
    Réponses: 4
    Dernier message: 19/07/2011, 09h05
  4. la base de données n'est pas reconnue après déploiement
    Par omar24 dans le forum Hébergement
    Réponses: 2
    Dernier message: 29/04/2011, 16h22
  5. [AC-2007] La fonction date() n'est plus reconnue après le déploiement
    Par gerarddurand dans le forum Runtime
    Réponses: 11
    Dernier message: 05/10/2010, 11h58

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