我遇到的问题是我的WCF REST服务似乎没有元数据。这使我无法使用WCF测试客户端。
服务的其余部分似乎正确构建和生成服务定义。这是我的web.config。我在这里错过了什么?任何建设性的意见将不胜感激。
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<connectionStrings>
<clear />
<add name="Requests" connectionString="REMOVED" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5"/>
</system.web>
<system.serviceModel>
<services>
<service name="Requests.Requests" behaviorConfiguration="ServiceBehavior">
<endpoint address="" binding="webHttpBinding" contract="Requests.IRequests" bindingConfiguration="WebBinding" behaviorConfiguration="EndpointBehavior" />
</service>
</services>
<bindings>
<webHttpBinding>
<binding name="WebBinding">
<security mode="None" />
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="EndpointBehavior">
<webHttp helpEnabled="true" defaultOutgoingResponseFormat="Json" automaticFormatSelectionEnabled="true" />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<directoryBrowse enabled="true"/>
</system.webServer>
</configuration>
答案 0 :(得分:1)
WCF REST服务不使用元数据,它仅适用于SOAP。尝试使用fiddler或其他类似工具作为测试客户端
答案 1 :(得分:0)
我有完全相同的问题 - 在我完全难倒之前从未使用过WCF测试工具。
我发现Carlos Figueira的以下答案非常有见地:
了解详情这是Web编程模型本身的限制。与SOAP不同 端点(即具有BasicHttpBinding,WSHttpBinding等的端点) 有一种方法可以公开有关自身的元数据(WSDL或Mex) 有关端点中所有操作/参数的信息, 目前还没有标准方法来公开非SOAP的元数据 端点 - 这正是基于webHttpBinding的端点 是。简而言之,WCF测试客户端对基于Web的无用 端点。如果用于表示Web样式端点的某些标准 当WCF发布其下一个版本时,我们可能会更新测试 客户支持它,但目前还没有广泛采用。