WCF测试客户端错误:无法调用服务

Kev*_*ock 5 rest wcf wcf-client

尝试将WCF测试客户端与我的WCF服务一起使用时出错.这是服务代码:

[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>
Run Code Online (Sandbox Code Playgroud)

我能够使用WCF测试客户端连接到服务,但是当我尝试调用GetEmployee(employeeNumber)时,我收到以下错误:

无法调用该服务.可能的原因:服务离线或无法访问; 客户端配置与代理不匹配; 现有代理无效.有关更多详细信息,请参阅堆栈跟踪.您可以尝试通过启动新代理,还原到默认配置或刷新服务来进行恢复.

我能够通过从浏览器发送请求成功调用此服务.

知道为什么我不能使用WCF测试客户端吗?

Eug*_*ota 11

请忽略我之前的回答.我认为问题不在于客户端配置.

请参阅WCF测试客户端和WebHttpBinding.

这是Web编程模型本身的限制.与SOAP端点(即具有BasicHttpBinding,WSHttpBinding等的端点)不同,它们有一种方法可以使用有关端点中所有操作/参数的信息来公开自身的元数据(WSDL或Mex),目前还没有标准的方法来公开元数据.非SOAP端点 - 这正是基于webHttpBinding的端点所在.简而言之,WCF测试客户端对基于Web的端点无用.如果在WCF发布其下一个版本时出现了代表Web样式端点的某些标准,我们可能会更新测试客户端以支持它,但目前还没有广泛采用.