在WCF服务中缺少MetaData

时间:2014-04-02 18:51:37

标签: c# wcf rest web-config

我遇到的问题是我的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>

2 个答案:

答案 0 :(得分:1)

WCF REST服务不使用元数据,它仅适用于SOAP。尝试使用fiddler或其他类似工具作为测试客户端

答案 1 :(得分:0)

我有完全相同的问题 - 在我完全难倒之前从未使用过WCF测试工具。

我发现Carlos Figueira的以下答案非常有见地:

  

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

WCF Test Client and WebHttpBinding

了解详情