错误: 无法从 WCF 服务获取元数据

本文关键字:服务 获取 元数据 WCF 错误 | 更新日期: 2023-09-27 17:57:12

我有一个成功运行的WCF服务,我可以使用javascript调用它。但是我想使用 WCF 测试客户端调用它,并且我很难做到这一点。我被告知我需要确保我在指定地址启用了元数据发布。阅读文档后,我只是看不出我的意思是这样做这是我的配置:

    <system.serviceModel>
       <services>
           <service name="CommentSessionIDWCFService" 
                    behaviorConfiguration="CommentSessionIDBehavior">
              <endpoint 
                  address="" 
                  behaviorConfiguration="CountryProvinceBehavior"
                  binding="webHttpBinding" 
                  contract="ICommentSessionIDWCFService" />
           </service>
       </services>
       <behaviors>
          <serviceBehaviors>
             <behavior name="CommentSessionIDBehavior">
                <serviceMetadata httpGetEnabled="true"/>
                <serviceDebug includeExceptionDetailInFaults="true"/>
             </behavior>
          </serviceBehaviors>
          <endpointBehaviors>
              <behavior name="CountryProvinceBehavior">
                  <webHttp/>
              </behavior>
          </endpointBehaviors>
       </behaviors>
    </system.serviceModel>

我已经阅读了其他帖子,但我看不到要填充的内容,我只是不断收到错误。问..

  1. 我说我需要在我的配置中配置一个完整的新服务来显示元数据是对的吗?

  2. 我应该向配置中添加什么才能发布此元数据,以便我可以与客户端一起调用?

错误: 无法从 WCF 服务获取元数据

下面是一个示例,需要服务的元数据终结点。

<services>
    <service name="MyService" behaviorConfiguration="MEX">
    <endpoint
        address="http://localhost:8000/MEX"
        binding="mexHttpBinding"
        contract="IMetadataExchange"
    />
    </service>
</services>
<behaviors>
    <serviceBehaviors>
        <behavior name="MEX">
            <serviceMetadata/>
        </behavior>
    </serviceBehaviors>
</behaviors>
在通过

右键单击更改 TestClient 中的配置文件并"使用 svceditor 编辑"以增加我的最大缓冲区大小后,我遇到了类似的问题。如果有人也犯了这个错误,请尝试重新构建您的项目。

添加

[AspNetCompatibility Requirements(RequirementsMode = AspNetCompatibility RequirementsMode.Required)]

httpGetEnabled设置为 true 并将includeExceptionDetailInFaults设置为 false

<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>