错误:无法从中获取元数据http://172.16.70.125:8080/ 使用WCF客户端访问另一台计算机上的服务时

错误:无法从中获取元数据http://172.16.70.125:8080/ 使用WCF客户端访问另一台计算机上的服务时,wcf,wcf-client,Wcf,Wcf Client,我是WCF的新手。问题是:我有两个系统,一个运行wcf服务,另一个运行客户端。 我可以ping服务的IP,也可以在我将其放入浏览器时看到链接。(它显示服务已启动并正在运行)。 但是,当我尝试从cmd运行wcftestclient时,会出现以下错误: 错误:如果这是一个你能访问的Windows(R)通信基础服务,…< /P>不能获得元数据。 我已经试了一整天了,它说的都是一样的。 有人能告诉我出了什么问题以及如何解决这个问题吗 谢谢, 您的服务是否启用了元数据交换?您的服务应该为元数据提供一个me

我是WCF的新手。问题是:我有两个系统,一个运行wcf服务,另一个运行客户端。 我可以ping服务的IP,也可以在我将其放入浏览器时看到链接。(它显示服务已启动并正在运行)。 但是,当我尝试从cmd运行wcftestclient时,会出现以下错误:

错误:如果这是一个你能访问的Windows(R)通信基础服务,…< /P>不能获得元数据。 我已经试了一整天了,它说的都是一样的。 有人能告诉我出了什么问题以及如何解决这个问题吗

谢谢,
您的服务是否启用了元数据交换?您的服务应该为元数据提供一个mex端点,以便WcfTestClient能够正常工作


MSDN:

您的服务是否公开了元数据端点?仅包含配置的相关部分

<services>
  <service behaviorConfiguration="metadataBehavior" name="MyService">
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="metadataBehavior">
      <serviceMetadata httpGetEnabled="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>

WcfTestClient实用程序取决于服务可用的WSDL。WSDL由元数据交换(或“mex”)端点提供。您可能缺少该端点。在配置中查找类似的内容,如果缺少,则添加:

<service ... >
    <endpoint ...(your usual endpoint for the service)... />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>


如何检查元数据交换是否已启用?实际上,我可以从本地计算机访问该服务。在哪里添加此代码?在app.config中??我在app.config中添加了它,但是如果您将它添加到服务的.config文件中,它就不起作用了。您必须将其与.config文件中已有的内容合并。基本上,将IMAdataExchange端点添加到现有的,添加部分,将behaviorConfiguration属性指向服务的名称Behavior没有.config文件,因为我的服务是一个控制台应用程序。那么,我必须将IMetadataExchange端点放在何处?对不起,是的,您的app.config文件。如果你想发布app.config的部分,我可以帮你编辑