找不到引用合同的默认端点元素?

时间:2014-07-23 08:47:01

标签: c# web-services wcf rest wcf-rest

我是WCF service的初学者。我创建了一个Wcf休息服务。如果我浏览它,这工作正常。

然后我添加了一个新的Web应用程序并添加了该服务的引用。服务正确加载。但是,当我检查web.config时,它不包含有关服务模型及其空的任何细节。我实现并构建并运行了解决方案,它打破并给出了这个错误:

  

找不到引用合同的默认端点元素   ' ProductRestService.IProductRESTService'在ServiceModel客户端中   配置部分。这可能是因为没有配置文件   找到您的应用程序,或者因为没有端点元素匹配   这个合同可以在客户元素中找到。

我的服务webconfig如下:

<system.serviceModel>
    <services>
      <service name="WcfService1.ProductRestService"
               behaviorConfiguration="serviceBehavior">
    <endpoint address="ProductRestService" binding="webHttpBinding" contract="WcfService1.IProductRESTService"
              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>

我将其实施为测试:

 if (!IsPostBack)
  {
       ProductRestService.ProductRESTServiceClient pro = new ProductRestService.ProductRESTServiceClient("ProductRestService");
       var prodcuts = pro.GetProductList();
       GridView1.DataSource = prodcuts;
       GridView1.DataBind();
  }

和客户端web.config为空:

<configuration>
    <system.web>
      <compilation debug="true" targetFramework="4.5.1" />
      <httpRuntime targetFramework="4.5.1" />
    </system.web>

</configuration>

如何解决此问题!!!

1 个答案:

答案 0 :(得分:0)

在web.config文件中添加以下代码,它将解决问题,

<system.serviceModel>
  <bindings>
    <webHttpBinding>
      <binding name="WebHttpBinding_IProductRESTService" />
    </webHttpBinding>
  </bindings>
  <client>
    <endpoint address="http://{DomainName}/ProductRestService/" binding="webHttpBinding" bindingConfiguration="WebHttpBinding_IProductRESTService" contract="WcfService1.IProductRESTService" name="WebHttpBinding_IProductRESTService" />
  </client>
</system.serviceModel>