如何使用WCF的新简化配置模型公开元数据

时间:2010-09-25 21:18:08

标签: wcf wcf-binding

我有一个简单的WCF4 REST服务,在使用浏览器时工作正常。但是,当我尝试从VS2010中的另一个项目添加服务引用时,我收到一条错误消息,“HTML文档不包含Web服务发现信息。”

我的问题是,由于WCF4有一个新的简化配置模型,我找不到任何有关如何为当前公开的标准端点打开元数据交换端点的工作示例。

我尝试添加如下所示的条目,但它没有解决问题。

这是我的配置:

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    <standardEndpoints>
      <webHttpEndpoint>
        <!-- 
            Configure the WCF REST service base address via the global.asax.cs file and the default endpoint via the attributes on the <standardEndpoint> element below
        -->
        <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>

      </webHttpEndpoint>
      <mexEndpoint>
        <standardEndpoint name=""/>
      </mexEndpoint>

    </standardEndpoints>
  </system.serviceModel>

非常感谢任何协助。

瑞克

1 个答案:

答案 0 :(得分:4)

元数据端点公开描述 SOAP服务的WSDL + XSD。不支持公开REST的元数据。 WCF不支持WADL(REST服务的描述)。

如果需要使用simplfied配置向SOAP服务添加元数据,则需要添加此行为:

<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>