Recibo un error al intentar usar WCF Test Client con mi servicio WCF. Aquí está el código de servicio:Error de WCF Test Client: Error al invocar el servicio
[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>
soy capaz de conectarse al servicio mediante el cliente de prueba WCF, pero cuando intento de invocar GetEmployee (employeeNumber) me sale el siguiente error:
No se ha podido invocar el servicio. Causas posibles: el servicio está fuera de línea o inaccesible; la configuración del lado del cliente no coincide con el proxy; el proxy existente no es válido. Consulte el seguimiento de la pila para más detalles. Puede tratar de recuperar iniciando un nuevo proxy, restaurando a la configuración predeterminada o actualizando el servicio.
Pude llamar este servicio con éxito al enviar una solicitud desde el navegador.
¿Alguna idea de por qué no puedo usar WCF Test Client?
@ stimpy77, simplemente cité de la respuesta vinculada por un empleado de MS. En WCF, el enlace se llama [WebHttpBinding] (http://msdn.microsoft.com/en-us/library/system.servicemodel.webhttpbinding.aspx) y en WSDL 2, se denomina [Enlace HTTP] (http://www.w3.org/TR/wsdl20-adjuncts/#http-binding), pero es bastante claro desde el contexto lo que significa "basado en la web" aquí. El término REST va más allá de simplemente exponer los métodos a través de HTTP. Se trata de tratar las cosas como recursos y usar verbos HTTP, etc. Ver [Richardson Maturity Model] (http://martinfowler.com/articles/richardsonMaturityModel.html). –