我在嘗試將WCF測試客戶端與我的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>
我能夠連接到使用WCF測試客戶端的服務,但是當我嘗試調用getEmployee的(employeeNumber)我得到以下錯誤:
失敗調用服務。可能的原因:服務處於脫機狀態或無法訪問;客戶端配置與代理不匹配;現有的代理無效。有關更多詳細信息,請參閱堆棧跟蹤。您可以嘗試通過啓動新代理,還原爲默認配置或刷新服務來進行恢復。
我能夠通過從瀏覽器發送請求來成功調用此服務。
任何想法,爲什麼我不能使用WCF測試客戶端?
@ stimpy77,我簡單地引用了MS員工的鏈接答案。在WCF中,綁定被稱爲[WebHttpBinding](http://msdn.microsoft.com/en-us/library/system.servicemodel.webhttpbinding.aspx),在WSDL 2中,它被稱爲[HTTP綁定](http:/ /www.w3.org/TR/wsdl20-adjuncts/#http-binding),但從上下文中可以清楚地看到「基於web」的含義。術語REST不僅僅是通過HTTP公開方法。這是關於將資源視爲資源並使用HTTP動詞等。請參閱[理查森成熟度模型](http://martinfowler.com/articles/richardsonMaturityModel.html)。 – 2011-05-10 17:35:27