Je reçois une erreur lorsque j'essaie d'utiliser le client de test WCF avec mon service WCF. Voici le code de service:Erreur du client de test WCF: Impossible d'appeler le service
[ServiceContract]
public interface IEmployeeService
{
[OperationContract(Name = "GetEmployee")]
[WebGet(RequestFormat = WebMessageFormat.Xml,
UriTemplate = "/Employees/{employeeNumber}")]
Employee GetEmployee(string employeeNumber);
}
public Employee GetEmployee(string employeeNumber)
{
var employeeNumberValue = Convert.ToInt32(employeeNumber);
var employee = DataProvider.GetEmployee(employeeNumberValue);
return employee;
}
<system.serviceModel>
<services>
<service name="Employees.Services.EmployeeService"
behaviorConfiguration="metaBehavior">
<endpoint address=""
behaviorConfiguration="webHttp"
binding="webHttpBinding"
contract="Employees.Services.IEmployeeService">
</endpoint>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange">
</endpoint>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webHttp">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="metaBehavior">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Je suis en mesure de se connecter au service à l'aide du test WCF client, mais lorsque je tente d'invoquer GetEmployee (employeeNumber) Je reçois l'erreur suivante:
Impossible de invoquez le service. Causes possibles: Le service est hors ligne ou inaccessible; la configuration côté client ne correspond pas au proxy; le proxy existant est invalide. Reportez-vous à la trace de la pile pour plus de détails. Vous pouvez essayer de récupérer en démarrant un nouveau proxy, en restaurant la configuration par défaut ou en actualisant le service.
J'ai réussi à appeler ce service en envoyant une requête au navigateur.
Une idée de pourquoi je ne peux pas utiliser le client de test WCF?
@ stimpy77, j'ai simplement cité la réponse liée par un employé MS. Dans WCF, la liaison est appelée [WebHttpBinding] (http://msdn.microsoft.com/en-us/library/system.servicemodel.webhttpbinding.aspx) et en WSDL 2, elle s'appelle [HTTP Binding] (http://www.w3.org/TR/wsdl20-adjuncts/#http-binding), mais il est assez clair du contexte ce que "web-based" signifie ici. Le terme REST va bien au-delà de l'exposition des méthodes via HTTP. Il s'agit de traiter les choses comme des ressources et d'utiliser des verbes HTTP, etc. Voir [Richardson Maturity Model] (http://martinfowler.com/articles/richardsonMaturityModel.html). –