WCF Services - WCF Test Client - Problème

Je cherche à créer une application console qui hébergerait un WCF Service, parce que pour le développement il serait plus facile d'héberger mon service ainsi que de devoir à l'installer ailleurs.

Contexte du problème 

Je pars de l'exemple de Jason De Olivera :
http://www.jasondeoliveira.com/2009/07/tutorial-adonet-data-services-part-3.html
qui me semble parfait pour ce que je souhaite faire : une WCF Application Service et deux Consoles une pour le Client et une pour le Host :

WCF Service hosté dans une application console - Projet Visual Studio 2010
Je lance l'exécution du client :

WCF Service hosté dans un application console - Exécution
J'exécute la commande "EF" pour lire des données à partir du Modèle Entity Framework :

WCF Service lecture des données à partir du Modèle Entity d'Entity Framework
Mon service est en cours d'exécution, grâce aux ligne de code c# suivantes :
\030 - Tutorial ADO.NET Data Services\ADODataServiceLearning_Part4\Host\Program.cs
const string sURI = "http://localhost:37052/ExampleDataService.svc";
host = new DataServiceHost(typeof(ExampleDataService), new Uri[] { baseAddress });
host.Open();

Je pense légitimement que je vais pouvoir utiliser WCF Test Service pour tester le service, je lance donc un "Add Service..." :

Utilisation de WCF Test Service pour tester mon service hosté dans la console
Mais j'obtiens l'erreur suivante :

Erreur à la découverte de mon WCF Service hosté
En gros elle me dit :
Error: Cannot obtain Metadata from http://localhost:37052/ExampleDataService.svc
If this is a Windows (R) Communication Foundation service to which you have access, 
please check that you have enabled metadata publishing at the specified address.  
For help enabling metadata publishing, please refer to the MSDN documentation at 
http://go.microsoft.com/fwlink/?LinkId=65455.
WS-Metadata Exchange Error    URI: http://localhost:37052/ExampleDataService.svc    
Metadata contains a reference that cannot be resolved: 'http://localhost:37052/ExampleDataService.svc'.    
The remote server returned an unexpected response: (405) Method Not Allowed.    
The remote server returned an error: (405) Method Not Allowed.
HTTP GET Error    URI: http://localhost:37052/ExampleDataService.svc    
The document at the url http://localhost:37052/ExampleDataService.svc/ 
was not recognized as a known document type.
The error message from each known type may help you fix the problem:
- Report from 'XML Schema' is 'The root element of a W3C XML Schema should be <schema> 
  and its namespace should be 'http://www.w3.org/2001/XMLSchema'.'.
- Report from 'DISCO Document' is 'Discovery document at the URL 
  http://localhost:37052/ExampleDataService.svc/ could not be found.'.  
- The document format is not recognized.
- Report from 'WSDL Document' is 'There is an error in XML document (2, 2).'.  
- <service xmlns='http://www.w3.org/2007/app'> was not expected.

Solution au problème de WCF Test Client

Il faut utiliser l'outil Service Configuration Editor pour configurer le WCF Service : ExampleDataService.svc et créer le contenu des fichiers .config manquant dans la solution. Cette configuration des WCF Services doit être effectuée dans le ficher App.config de la Console qui hoste le service.

Aucun commentaire:

Enregistrer un commentaire

Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.