Nous pouvons debugger notre code au sein d’un service WCF de la même manière que tout autre code .NET, en définissant des points d’arrêts au niveau du code que nous voulons débugger et si nous utilisons le serveur web IIS nous devons alors nous attacher au processus de ce dernier. Mais il arrive que notre code s’exécute bien et ne lève aucune exception alors que côté client nous récupérons une erreur qui ressemble à ça :
“The remote server returned an error: NotFound” pas très explicite comme erreur surtout lorsque vous savez que le code du service WCF a bien été atteint et qu’il s’est bien exécuté sans problème. Le problème s’est donc passé au sein de WCF après l’exécution de votre code du service. Pour avoir une erreur plus explicite et comprendre ce qui se passe réellement il suffit d’activer le tracing côté WCF en ajoutant cette entrée dans le web.config
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="WCFListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "c:\wcflog\WCFTraces.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
Après un nouvel appel de votre service, rendez vous au répertoire c:\wcflog et double cliquez sur le fichier WCFTraces.svclog, vous allez pouvoir découvrir la vraie exception
D’un coup, tout devient plus clair, dans mon cas j’ai un cycle dans mes classes.