WCF服务没有端点

时间:2012-10-05 09:04:22

标签: c# wcf wcf-client

当我运行WCF测试客户端时,我收到一个错误:

  

错误:无法从中获取元数据   localhost:52875 / ControllersInfo.svc如果这是一个Windows(R)   请访问您的Communication Foundation服务   检查您是否已在指定的位置启用元数据发布   地址。
  元数据   包含无法解析的引用:   本地主机:52875 / ControllersInfo.svc”。没有   端点侦听localhost:52875 / ControllersInfo.svc   可以接受这个消息。这通常是由不正确引起的   地址或SOAP操作。有关更多信息,请参阅InnerException(如果存在)   的信息。

这是我的web.config文件

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </assemblies>
    </compilation>
  </system.web>
  <system.serviceModel>
    <standardEndpoints>
      <webHttpEndpoint>
        <standardEndpoint helpEnabled="true" automaticFormatSelectionEnabled="true" />
      </webHttpEndpoint>
    </standardEndpoints>
    <services>
      <service name="dev_FineReceiptsService.ControllersInfo">
        <endpoint kind="webHttpEndpoint" contract="dev_FineReceiptsService.IControllersInfo" />
      </service>
    </services>
  </system.serviceModel>
  <connectionStrings>
    <add name="FineReceiptsTestEntities" connectionString="metadata=res://*/FineTest.csdl|res://*/FineTest.ssdl|res://*/FineTest.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=msdev01;Initial Catalog=FineReceiptsTest;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

谁能告诉我我做错了什么?

我试图找到类似的问题,但没有一个能帮助我。

2 个答案:

答案 0 :(得分:0)

您的服务是基于REST的服务(因为您指定了webHttpBinding)。

但是,WCF测试客户端是基于SOAP的测试工具 - 您可以使用此功能测试 SOAP 服务 - basicHttpBindingwsHttpBinding

但是不能使用基于SOAP的WCF测试客户端来测试基于REST的WCF服务......这些服务不会起作用。使用常规Web浏览器,可能与Fiddler或类似的东西结合使用来测试您的REST服务。

答案 1 :(得分:0)

元数据端点公开描述 SOAP 服务的WSDL + XSD。不支持公开REST的元数据。由于您使用的是webHttpEndpoint,因此无法使用WCFTestClient。要测试休息服务,可以使用RestSharp或浏览器。

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

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