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 :

WCF : Erreur TCP 10060


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13
    Par défaut WCF : Erreur TCP 10060
    Bonjour,

    nous essayons d'établir une communication entre 2 applications sur deux machines d'un même réseau par le biais de WCF.
    Le langage utilisé est le C# avec Visual Studio 2008.

    On a donc une application server qui héberge notre WCF et une application Client qui se connecte au server afin d'en utilisé les méthodes.

    En local tout fonctionne très bien, le client instancie le service, appel la méthode et celle ci fait son travail.

    Par contre, losqu'on installe le client sur une machine distante, l'erreur suivante survient :

    Connexion à http://192.168.1.3:49200/simpleMIB_Manager impossible. Code d'erreur TCP 10060 : une tentaive de connexion a échouée car le parti connecté n'a pas répondu convenablement au delà d'une certaine durée ou une connexion établie a échouée car l'hôte de connexion n'a pas répondu 192.168.1.3:49200


    On a désactivé les antivirus et Parfeu, et les deux ordinateur sont branché directement l'un à l'autre avec un cable croisé (on arrive à se pinger).

    On pense qu'il est possible que ça peu venir des fichier app.config d'une des deux application.

    Voiçi le détail de ces deux fichiers :



    Server :
    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
     
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <system.serviceModel>
            <behaviors>
                <serviceBehaviors>
                    <behavior name="simpleMIB_Manager.XMLWriterInventaireBehavior">
                        <serviceMetadata httpGetEnabled="true" />
                        <serviceDebug includeExceptionDetailInFaults="true" />
                    </behavior>
                </serviceBehaviors>
            </behaviors>
            <services>
                <service behaviorConfiguration="simpleMIB_Manager.XMLWriterInventaireBehavior"
                    name="simpleMIB_Manager.XMLWriterInventaire">
                    <endpoint address="" binding="wsHttpBinding" contract="simpleMIB_Manager.IXMLWriterInventaire">
                        <identity>
                            <dns value="localhost" />
                        </identity>
                    </endpoint>
                  <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
                    <host>
                        <baseAddresses>
                           <!--<add baseAddress="http://localhost:8731/Design_Time_Addresses/simpleMIB_Manager/XMLWriterInventaire/" />-->
                        </baseAddresses>
                    </host>
                </service>
            </services>
        </system.serviceModel>
    </configuration>
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <system.serviceModel>
            <bindings>
                <wsHttpBinding>
                    <binding name="WSHttpBinding_IXMLWriterInventaire" closeTimeout="00:01:00"
                        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                        bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                        maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                        messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                        allowCookies="false">
                        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                        <reliableSession ordered="true" inactivityTimeout="00:10:00"
                            enabled="false" />
                        <security mode="Message">
                            <transport clientCredentialType="Windows" proxyCredentialType="None"
                                realm="" />
                            <message clientCredentialType="Windows" negotiateServiceCredential="true"
                                algorithmSuite="Default" establishSecurityContext="true" />
                        </security>
                    </binding>
                    <binding name="WSHttpBinding_IXMLWriterInventaire1" closeTimeout="00:01:00"
                        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                        bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                        maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                        messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                        allowCookies="false">
                        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                        <reliableSession ordered="true" inactivityTimeout="00:10:00"
                            enabled="false" />
                        <security mode="Message">
                            <transport clientCredentialType="Windows" proxyCredentialType="None"
                                realm="" />
                            <message clientCredentialType="Windows" negotiateServiceCredential="true"
                                algorithmSuite="Default" establishSecurityContext="true" />
                        </security>
                    </binding>
                </wsHttpBinding>
            </bindings>
            <client>
                <endpoint address="http://127.0.0.1:49200/simpleMIB_Manager" binding="wsHttpBinding"
                    bindingConfiguration="WSHttpBinding_IXMLWriterInventaire"
                    contract="IXMLWriterInventaire" name="WSHttpBinding_IXMLWriterInventaire">
                    <identity>
                        <dns value="localhost" />
                    </identity>
                </endpoint>
                <endpoint address="http://127.0.0.1:49200/simpleMIB_Manager/XMLWriterInventaire"
                    binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IXMLWriterInventaire1"
                    contract="IXMLWriterInventaire" name="WSHttpBinding_IXMLWriterInventaire1">
                    <identity>
                        <userPrincipalName value="PC-de-Melchione\Melchione" />
                    </identity>
                </endpoint>
            </client>
        </system.serviceModel>
    </configuration>

    Voilà, je pense avoir tout dis. Donc si l'un d'entre vous sait d'ou pourrai venir cette erreur, on a déja ennormément cherché sur tout les forums mais en vain.

    Merci d'avance.

    Sébastien

  2. #2
    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
    Sur le client, tu as:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://127.0.0.1:49200/simpleMIB_Manager
    dans tes endpoints. Si ton serveur est sur une machine distante, faut que tu mette l'up/le nom de la machine distante car là, tu lui dis que le client doit se connecter au serveur qui est sur la même machine. De plus, sur le serveur, tu ne lui indique rien (donc pas défaut, c'est localhost) mais même pas le port donc il n'ouvre pas la connexion sur le port 49200

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13
    Par défaut
    Salut,

    merci de répondre aussi rapidement,

    sur le client on avais aussi essayé de mettre l'adresse IP du serveur mais ca n'a pas marché.

    En fait l'exception est soulevé à l'apel d'une méthode du service. Celui-ci s'instancie correctement.

    Pour le serveur tu dis qu'il faut lui indiquer explicitement le port. Comment faire ça?
    Voiçi les nouveaux aap.config après rectification :

    Server :
    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
     
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <system.serviceModel>
            <behaviors>
                <serviceBehaviors>
                    <behavior name="simpleMIB_Manager.XMLWriterInventaireBehavior">
                        <serviceMetadata httpGetEnabled="true" />
                        <serviceDebug includeExceptionDetailInFaults="true" />
                    </behavior>
                </serviceBehaviors>
            </behaviors>
            <services>
                <service behaviorConfiguration="simpleMIB_Manager.XMLWriterInventaireBehavior"
                    name="simpleMIB_Manager.XMLWriterInventaire">
                    <endpoint address="" binding="wsHttpBinding" contract="simpleMIB_Manager.IXMLWriterInventaire">
                        <identity>
                            <dns value="localhost" />
                        </identity>
                    </endpoint>
                  <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
                    <host>
                        <baseAddresses>
                           <!--<add baseAddress="http://localhost:49200/simpleMIB_Manager" />-->
                        </baseAddresses>
                    </host>
                </service>
            </services>
        </system.serviceModel>
    </configuration>
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <system.serviceModel>
            <bindings>
                <wsHttpBinding>
                    <binding name="WSHttpBinding_IXMLWriterInventaire" closeTimeout="00:01:00"
                        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                        bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                        maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                        messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                        allowCookies="false">
                        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                        <reliableSession ordered="true" inactivityTimeout="00:10:00"
                            enabled="false" />
                        <security mode="Message">
                            <transport clientCredentialType="Windows" proxyCredentialType="None"
                                realm="" />
                            <message clientCredentialType="Windows" negotiateServiceCredential="true"
                                algorithmSuite="Default" establishSecurityContext="true" />
                        </security>
                    </binding>
                    <binding name="WSHttpBinding_IXMLWriterInventaire1" closeTimeout="00:01:00"
                        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                        bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                        maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                        messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                        allowCookies="false">
                        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                        <reliableSession ordered="true" inactivityTimeout="00:10:00"
                            enabled="false" />
                        <security mode="Message">
                            <transport clientCredentialType="Windows" proxyCredentialType="None"
                                realm="" />
                            <message clientCredentialType="Windows" negotiateServiceCredential="true"
                                algorithmSuite="Default" establishSecurityContext="true" />
                        </security>
                    </binding>
                </wsHttpBinding>
            </bindings>
            <client>
                <endpoint address="http://192.168.1.2:49200/simpleMIB_Manager" binding="wsHttpBinding"
                    bindingConfiguration="WSHttpBinding_IXMLWriterInventaire"
                    contract="IXMLWriterInventaire" name="WSHttpBinding_IXMLWriterInventaire">
                    <identity>
                        <dns value="localhost" />
                    </identity>
                </endpoint>
                <endpoint address="http://192.168.1.2:49200/simpleMIB_Manager/XMLWriterInventaire"
                    binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IXMLWriterInventaire1"
                    contract="IXMLWriterInventaire" name="WSHttpBinding_IXMLWriterInventaire1">
                    <identity>
                        <userPrincipalName value="PC-de-Melchione\Melchione" />
                    </identity>
                </endpoint>
            </client>
        </system.serviceModel>
    </configuration>
    Deplus voici le code qui permet à l'application du server qui permet d'heberger le service :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Uri baseAdress = new Uri("http://127.0.0.1:49200/simpleMIB_Manager");
    shWCFXmlWriterInventaire = new ServiceHost(typeof(XMLWriterInventaire), baseAdress); 
          shWCFXmlWriterInventaire.AddServiceEndpoint(typeof(IXMLWriterInventaire), new WSHttpBinding(), "XMLWriterInventaire");
     
    shWCFXmlWriterInventaire.Open();

  4. #4
    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 melcion Voir le message
    Deplus voici le code qui permet à l'application du server qui permet d'heberger le service :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Uri baseAdress = new Uri("http://127.0.0.1:49200/simpleMIB_Manager");
    shWCFXmlWriterInventaire = new ServiceHost(typeof(XMLWriterInventaire), baseAdress); 
          shWCFXmlWriterInventaire.AddServiceEndpoint(typeof(IXMLWriterInventaire), new WSHttpBinding(), "XMLWriterInventaire");
     
    shWCFXmlWriterInventaire.Open();
    Une raison particulière pour mettre ce code dans l'application et pas dans le fichier de config ? Car là, si demain tu veux changer le port ou l'adresse, ca veur dire recompiler l'application....

    De plus, pas d'exception sur la méthode Open ? Le serveur se lance bien ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13
    Par défaut
    Non aucune raison particulière sinon que si je n'utilise pas le service host je ne peux pas afficher le service dans Internet Explorer.

    Le servicehost n'est il pas indispensable?

    Deplus je met l'adresse loopback donc même si le server change d'adresse ca devrai pas poser de problème.

    Enfin, la méthode open ne renvoi aucune exception, ca marche correctement, comme je l'ai dis tout précédement, l'exception est générée par le client lors de l'apel d'une méthode du service (le client arrive à se connecter au server sans renvoyer d'exception).

    voici le code coté client qui renvoi l'exception :

    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
                try
                {
                    //instancie le Web service qui permet de dire au manager que l'agent est présent
                    XMLWriterInventaireClient svcXMLWriterInventaire = new XMLWriterInventaireClient("WSHttpBinding_IXMLWriterInventaire");
                    string strPrenom =  clsXMLAgent.fctRecupValeurInfoConfig("utilisateur/prenom", "XmlConfigAgent.xml");
                    string strNom = clsXMLAgent.fctRecupValeurInfoConfig("utilisateur/nom", "XmlConfigAgent.xml");
                   MessageBox.Show(svcXMLWriterInventaire.fctSignalerPresence("22:22:22:22:22", "192.168.1.2", strNom, strPrenom));
     
                    return svcXMLWriterInventaire;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                    return null;
                }
    C'est donc l'apel à la méthode fctSignalerPresence qui génère l'exception

  6. #6
    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 melcion Voir le message
    Le servicehost n'est il pas indispensable?
    Si mais ton ServiceHost peut-être une application Console, un service Windows, un site Web ASP.NET, etc... Et dans tous les cas, tu peux mettre tous tes endpoints dans le fichier de conf, inutile de passer par du code.

    Enfin, la méthode open ne renvoi aucune exception, ca marche correctement, comme je l'ai dis tout précédement, l'exception est générée par le client lors de l'apel d'une méthode du service (le client arrive à se connecter au server sans renvoyer d'exception).
    Oui comme toujours avec WCF: la connexion fonctionne mais l'appel des méthodes échouent.


    Tu as essayé d'activer les traces, coté client et serveur, pour voir si tu n'avais pas plus d'infos ?

Discussions similaires

  1. [WCF] Erreur lors de la fermeture du canal
    Par banban56 dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 03/07/2010, 11h32
  2. silverlight avec WCF net.tcp
    Par sucou dans le forum Silverlight
    Réponses: 6
    Dernier message: 09/05/2010, 13h36
  3. Erreur TCP/IP Socket
    Par zut94 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/09/2008, 09h59
  4. erreur tcp/ip avec jdbc
    Par champion dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 03/04/2004, 14h32

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