当我运行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="Data Source=msdev01;Initial Catalog=FineReceiptsTest;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
谁能告诉我我做错了什么?
我试图找到类似的问题,但没有一个能帮助我。
答案 0 :(得分:0)
您的服务是基于REST的服务(因为您指定了webHttpBinding
)。
但是,WCF测试客户端是基于SOAP的测试工具 - 您可以使用此功能测试 SOAP 服务 - basicHttpBinding
,wsHttpBinding
等
但是不能使用基于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>