2009-05-13 5 views
1

J'essaie de récupérer un service WCF. J'ai reçu l'URL du fichier svc. 1. Création d'une application Windows Form 2. Ajout une référence de service au fichier svc 3. Dans mon code derrière lors de l'événement de chargement du formulaire, j'appelle la méthode exposée par le serviceConsommation d'un service WCF - C#, VS2008 avec 3.5 SP1

 ServiceReference1.SearchServiceClient search = new WindowsFormsApplication1.ServiceReference1.SearchServiceClient(); 
     var serviceResult = search.SearchByClientNumber("1"); 

Je reçois cette erreur Le serveur n'a pas pu traiter la demande en raison d'une erreur interne. Pour plus d'informations sur l'erreur, activez IncludeExceptionDetailInFaults (à partir de ServiceBehaviorAttribute ou du comportement de configuration) sur le serveur afin de renvoyer les informations d'exception au client ou activez le suivi conformément à la documentation Microsoft .NET Framework 3.0 SDK et inspecter les journaux de suivi du serveur. »

je peux appeler la méthode en utilisant WCFTestClient mais pas dans ma demande.

y at-il des changements que je dois effectuer dans mon application test de fichier de configuration? Il y a une section pour

<client> 
     <endpoint address="http://somewhere.com/Service.svc" 
      binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISearchService" 
      contract="ServiceReference1.ISearchService" name="BasicHttpBinding_ISearchService" /> 
    </client> 
+0

Les deux réponses sont pertinentes et corrigent le problème. C'est une honte OP n'en a pas fait un aussi complet. –

Répondre

6

Cette erreur se produit lors d'une exception Le message est renvoyé du service et le message ne peut pas être renvoyé.

Si vous avez accès au code de service, il suffit de faire comme les états d'exception (« ... allumer IncludeExceptionDetailInFaults (soit à partir ServiceBehaviorAttribute ou du comportement de configuration) ... ») afin de debug.

Exemple <serviceBehaviors> tag:

<serviceBehaviors> 
    <behavior name="WcfService1.Service1Behavior"> 
     <serviceDebug includeExceptionDetailInFaults="true"/> 
    </behavior> 
</serviceBehaviors> 

Exemple de spécifier le comportement de service:

<service name="WcfService1.Service1" behaviorConfiguration="WcfService1.Service1Behavior"> 

Description détaillée de la propriété ServiceBehaviorAttribute.IncludeExceptionDetailInFaults se trouve here.

2

Si vous pouvez modifier le fichier de configuration sur le serveur, voici ce que vous pouvez faire pour obtenir les informations d'exception via le service.

Vous devez ajouter une section de comportement de service à la configuration du serveur.

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

Ensuite, associez le service à ce comportement.

<service name="serviceName" behaviorConfiguration="serviceNameBehavior" ... 
+0

Je pense que ce devrait être "behaviorConfiguration" au lieu de "comportement" dans la balise . –

+0

oui, vous m'a attrapé, réparé –

Questions connexes