2010-12-02 4 views
3

J'ai créé un service WCF, maintenant ce service WCF doit appeler un service Web. Ce que je fais est d'ajouter la référence de service du service Web dans WCF et d'appeler la méthode du service Web que je veux utiliser.Consommation de service Web à partir de WCF

Juste un exemple ci-dessous:

CalcWebReference.CalculatorSoapClient fct = 
    new CalcWebReference.CalculatorSoapClient(); 
int rq = fct.Add(q, r); 
return rq; 

maintenant cette méthode quand j'ai essayé d'appeler le client, il donne erreur suivant

Le serveur n'a pas pu traiter la demande en raison de une erreur interne. Pour plus d'informations sur l'erreur, tour ou sur IncludeExceptionDetailInFaults (soit de ServiceBehaviorAttribute ou de la configuration comportement) sur le serveur afin de envoyer les informations d'exception retour à le client ou activer le suivi selon la documentation Microsoft .NET Framework 3.0 SDK et inspectez les journaux de trace du serveur .

Merci je l'ai fait ce que u dans la section de configuration du client ServiceModel dit, mais maintenant je reçois l'erreur suivante: « Impossible de trouver l'élément de point final par défaut qui fait référence à un contrat « CalcWebReference.CalculatorSoap ». Cela peut être parce qu'aucun fichier de configuration n'a été trouvée pour votre application, ou parce qu'aucun élément de point de terminaison correspondant à ce contrat n'a pu être trouvé dans l'élément client. "

Maintenant, dois-je donner quelques points de terminaison dans le service WCF ou dans le service Web pour obtenir la fonction du service Web et si oui alors comment puis-je le donner.

Aidez-nous s'il vous plaît.

Salut,

CalcWebReference.CalculatorSoapClient est reffering au service Web WCF pas. Étant donné ci-dessous est le code écrit dans WCF (code exemple) qui appelle le service Web: -

CalcWebReference.CalculatorSoapClient fct = new CalcWebReference.CalculatorSoapClient(); 

      int rq = fct.Add(12, 10); 

      return rq; 

Suis-je ne mets pas le droit de syntaxe ou est-il une chose plus que je dois faire dans ce domaine?

Répondre

2

Ceci est le message d'erreur générique WCF "quelque chose de mal arrivé". Cela ne sera pas vraiment utile.

Approches:

  • Assurez-vous que le service Web que vous appelez des travaux sur son propre - autrement fixer!

  • permettent les informations d'erreur détaillées, comme décrit dans le message d'erreur, en incluant les détails de l'erreur dans votre service WCF (faire dans des environnements DEV ne Jamais dans la production ...)

  • essayer de lancer votre service WCF dans Visual Studio et déboguer ce qui se passe

Pour activer le rapport d'erreur détaillé, vous devez ajouter cette section à la configuration de votre service WCF:

<behaviors> 
    <serviceBehaviors> 
     <behavior name="DebugBehavior"> 
      <serviceDebug includeExceptionDetailInFaults="True" /> 
     </behavior> 
    </serviceBehaviors> 
</behaviors> 

Vous avez peut-être déjà un comportement de service configuré - dans ce cas, ajoutez simplement la balise <serviceDebug> à votre comportement de service.

Si vous n'avez pas une config de service encore - vous devez également vous assurer que votre service en fait utilisations que config de service:

<service name="YourServiceNameHere" 
     behaviorConfiguration="DebugBehavior"> 

Assurez-vous d'avoir un attribut behaviorConfiguration= sur votre <service> tag, et assurez-vous de référencer ce comportement de service défini (en spécifiant sa propriété <behavior name="..." >).

Une fois que vous avez fait cela, votre erreur devrait vous donner plus d'informations - vous devriez certainement obtenir un .InnerException sur votre exception qui devrait vous orienter dans la bonne direction.

Questions connexes