我有这项服务很有效,直到我更改了服务的命名空间。还更改了项目中的默认命名空间。我收到一些关于不发布元数据的错误,所以我解除了我的更改,而不是没有任何作用。我甚至创建了一个新服务来测试再次进行此操作,而不是当我尝试测试我的休息服务时,我得到了一个http 400。这是一个漫长的一周,我完全拉了我的头发。谁能看到我在这里做错了什么?
更新:http 400已消失,这是我看到的错误:错误:无法从http://localhost:1585/ProdSvc.svc获取元数据如果这是您有权访问的Windows(R)Communication Foundation服务,请检查您已在指定地址启用元数据发布。有关启用元数据发布的帮助,请参阅http://go.microsoft.com/fwlink/?LinkId=65455
上的MSDN文档[OperationContract]
void DoWork();
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "GetProductName/")]
string GetProductName();
public string GetProductName()
{
return "It worked!!!";
}
<system.serviceModel>
<services>
<service name="TSServices.ProdSvc" behaviorConfiguration="serviceBehavior">
<endpoint address=""
binding="webHttpBinding"
contract="TSServices.ProdSvc"
behaviorConfiguration="web"></endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="serviceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
答案 0 :(得分:0)
Supertopi的回答是正确的。添加配置部分就可以了。