Configuration WCF Net.Tcp

Je suis en train de configurer un service wcf utilisation de net.tcp sur IIS 7.

Voici l'erreur que je reçois:

Il n'y a pas de point de terminaison de l'écoute à
net.tcp://127.0.0.1:8000/ListingService
qui pourrait accepter le message. C'est
souvent causé par une mauvaise adresse
ou du SAVON d'action. Voir InnerException, si
présent, pour plus de détails.

Voici le code que j'appel du client:

using (var client = new ListingServiceClient("NetTcpBinding"))
{
   client.Test();
   client.Close();
}

Voici mes services web.config - http://pastebin.com/3S8BZbup

<system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding portSharingEnabled="true">
          <security mode="None" />
        </binding>
      </netTcpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="default">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
          <!--throttle service-->
          <serviceThrottling
            maxConcurrentCalls="10000"
            maxConcurrentSessions="10000" 
            maxConcurrentInstances="10000" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="default" name="Housters.Services.ListingService">
        <endpoint name="TcpEndpoint"
                  address="net.tcp://127.0.0.1:8000/ListingService"
                  binding="netTcpBinding"
                  contract="Housters.Services.IListingService" />
      </service>
    </services>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
      <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

Et voici mon application client.config - http://pastebin.com/YpiAhh46

<system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding name="NetTcpBinding">
          <security mode="None"/>
        </binding>
      </netTcpBinding>
    </bindings>
    <client>
      <endpoint
              address="net.tcp://127.0.0.1:8000/ListingService"
              binding="netTcpBinding" bindingConfiguration="NetTcpBinding"
              contract="ListingServiceProxy.IListingService" name="NetTcpBinding" />
    </client>
  </system.serviceModel>

Des idées?

  • Je devrais aussi mentionner que j'ai ajouté net.tcp dans iis protocoles activés et ont ajouté une liaison pour net.tcp - "8000:*".
  • Vous ne savez pas si c'est le problème, mais j'ai remarqué que vous ne réglez pas le bindingConfiguration bien sur la "TcpEndpoint" endpoint. ni avez-vous un name ensemble sur le netTcpBinding.
  • Sommes-nous en regardant le même code? Sur le point de terminaison tcp je suis réglage de la bindingConfiguration: bindingConfiguration="NetTcpBinding". Je suis également à mettre le nom sur le netTcpBinding: <binding name="NetTcpBinding">. Permettez-moi de savoir si je suis un malentendu.
  • les configs ajouté - pas de problèmes à tous....
  • la configuration du serveur. les lignes 55 et 30 dans le lien pastebin
  • J'ai essayé de réglage de la liaison nom & point de terminaison bindingconfiguration mais toujours la même erreur.
  • Pourriez-vous essayer de s'auto-héberger le serveur, juste pour un test, à l'intérieur d'une application console?? IIS et net.tcp ne sont pas exactement les copains....
  • Exactement comment cela fonctionnerait-il? J'ai plusieurs méthodes dans le service, j'ai besoin d'avoir un port séparé/point de terminaison d'écoute pour chaque méthode?
  • Créer une Application de Console. Ajouter une référence à la WCF Projet dll, ajouter une Application.fichier de configuration pour l'Application Console. Copie de site web.config app.config. Dans main(), ajoutez le code pour créer et ouvrir un ServiceHost, et la Console.ReadKey(). Voir msdn.microsoft.com/en-us/library/ms731758.aspx
  • Merci, mais il ne semble pas fonctionner. Je suis en mesure de créer une auto-hébergé service et de démarrage sans problème, cependant lorsque j'essaie d'ajouter une référence de service, il erreurs: Il y a une erreur de téléchargement 'localhost:8080/ListingService'. Impossible de se connecter au serveur distant Aucune connexion n'a pu être établie car l'ordinateur cible l'a expressément refusé 127.0.0.1:8080 Métadonnées contient une référence qui ne peut pas être résolu: "localhost:8080/ListingService'. Il n'y a pas de point de terminaison de l'écoute dans le localhost:8080/ListingService que peut accepter le message.
  • Ai eu de travail! Je faisais un service windows à la place d'une application de console et qu'il n'avait pas les autorisations suffisantes pour ouvrir le service d'accueil. Pouvez vous s'il vous plaît envoyer vos commentaires en réponse afin que je puisse vous donner du crédit?
  • Je suis confus. quelle en était la cause du problème? était-il que vous n'étiez pas héberge le serveur correctement? peut-être IIS ne pas obtenir le long de avec net.tcp, comme marc_s suggéré?
  • OK bon à savoir, merci. Je n'ai toujours aucune idée de pourquoi ça ne fonctionne pas avec iis, mais j'ai réussi à le faire fonctionner avec les "auto-organisé" solution dans un service de windows, et je suis ok avec ça.

InformationsquelleAutor Justin | 2011-01-27