2011-12-02 4 views
0

le problème: lors de l'ajout de référence de service -> chosing l'adresse http://localhost:8000 -> en appuyant sur GOincapable d'ajouter une référence de service en application WCF

Il y a eu une erreur pendant le téléchargement 'http: // localhost: 8000'.
Impossible de se connecter au serveur distant
Aucune connexion peut être établie parce que la machine cible activement refusé 127.0.0.1:8000
métadonnées contient une référence qui ne peut être résolu: «http: // localhost: 8000 /.
Il n'y avait pas de point d'extrémité d'écoute à http://localhost:8000/ qui pouvait accepter le message.
Ceci est souvent causé par une adresse incorrecte ou une action SOAP.
Voir InnerException, si présent, pour plus de détails.
Impossible de se connecter au serveur à distance
Aucune connexion n'a pu être établie car la machine cible activement refusé 127.0.0.1:8000
Si le service est défini dans la solution actuelle, essayer de construire la solution et l'ajout du service référence à nouveau.

Le contrat de service:

[ServiceContract(Namespace="http://www.thatindigogirl/2011/12")] 
public interface IHelloIndigo 
{ 
    [OperationContract] 
    void DoWork(); 
}  

Le service:

public class HelloIndigo : IHelloIndigo 
{ 
    public void DoWork() 
    { 
     throw new NotImplementedException(); 
    } 
} 

app.config de l'hôte:

<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior name="serviceBehavior"> 
       <serviceMetadata httpGetEnabled="true" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <services> 
     <service behaviorConfiguration="serviceBehavior" name="HelloIndigo"> 
      <host> 
      <baseAddresses> 
       <add baseAddress="http://localhost:8000" /> 
      </baseAddresses> 
      </host> 
      <endpoint address="HelloIndigoService" binding="basicHttpBinding" 
       name="basicHttp" contract="Host.IHelloIndigo" /> 
      <endpoint binding="mexHttpBinding" name="mex" 
       contract="IMetadataExchange" />     
     </service> 
    </services> 
</system.serviceModel> 
  • Cette solution a été reconstruit en arrière m an vs2008 à vs2010 j'ai changé le cadre à 4.0 dans les deux projets client et hôte.
  • Les configurations ont été effectuées par l'assistant de configuration wcf.

Aucune idée de la raison pour laquelle le projet client ne peut pas localiser le point de fin de l'hôte pour extraire les métadonnées?

Merci d'avance.

+3

Si vous ouvrez cette adresse dans un navigateur, obtenez-vous la page de service? –

+0

Votre service ne fonctionne définitivement pas, en fonction de l'exception que vous voyez. – Yuck

+0

oui, je cours l'hôte et aller à localhost: 8000 et le service est là. –

Répondre

0

Il est probable que le service ne fonctionne pas.

Il se peut également que le port 8000 soit bloqué.

Edit:

Sur la base de vos commentaires que la découverte ne fonctionne pas dans la même solution: Cela signifie que quelque chose ne va pas avec le type de projet. Pour créer un nouveau projet WCF, ajoutez les services dont vous avez besoin, puis copiez sur votre code existant.

+0

iv'a tenté de changer le port mais toujours pas de dés. –

+0

bien le service ne fonctionne pas ma question alors comment pourrais-je exécuter le service et ajouter un point de fin de service en même temps si elles sont dans la même âme est le seul moyen dans ce cas d'ajouter une référence à l'hôte assembly mais aussi le problème arrsies que je ne peux pas ajouter la référence de service à l'exécution. btw Découvrez aussi ne fonctionne pas (il ne trouve pas le service dans l'âme). –

0
+0

non ... j'essaie d'exposer les métadonnées du point de terminaison mex –

+0

Je pense que son/max à la fin je ne suis pas sûr .. –

+0

Est-ce que ça marche? Si oui, veuillez le marquer comme réponse. Donc, quelqu'un peut l'utiliser comme référence. –

-3

J'ai essayé de faire la même chose que vous étiez, en ajoutant seulement une référence de service pour exécuter en une erreur de connexion parce que le service actuel ne fonctionnait pas.

Afin de retirer cette astuce, vous devez ouvrir deux instances de Visual Studio et en utiliser une pour ouvrir d'abord le menu "Ajouter une référence de service". Avec le menu ouvert, dans votre autre Visual Studio, déboguez votre application pour que votre service soit en cours d'exécution. Pendant que le service est en cours d'exécution, entrez l'adresse dans le menu "Ajouter une référence de service" et il va trouver votre service d'écoute d'URL. C'est seulement alors que vous pouvez sélectionner l'interface ou la classe que vous souhaitez référencer. Une fois que cela est fait, vous pouvez arrêter le débogage et les modifications entreront en vigueur. Vous pouvez recevoir un avertissement que votre projet a été modifié en dehors de l'éditeur, cliquez simplement sur OK et vous serez bon.

+0

cela m'a rappelé cela: http://xkcd.com/763/ – Jonesopolis

0

J'ai rencontré le même problème lors de la révision d'un service Web Odata existant, puis j'ai tenté d'établir une nouvelle référence de service pour le service révisé dans un projet Silverlight. En commentant temporairement les sections d'authentification et d'autorisation dans le fichier web.config, j'ai pu me connecter et télécharger les métadonnées du service de données vers mon projet Silverlight. Rick Moulton

Questions connexes