WCF Restful服务停止工作

时间:2015-01-31 01:19:24

标签: wcf rest

我有这项服务很有效,直到我更改了服务的命名空间。还更改了项目中的默认命名空间。我收到一些关于不发布元数据的错误,所以我解除了我的更改,而不是没有任何作用。我甚至创建了一个新服务来测试再次进行此操作,而不是当我尝试测试我的休息服务时,我得到了一个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>

1 个答案:

答案 0 :(得分:0)

Supertopi的回答是正确的。添加配置部分就可以了。