简体   繁体   English

找不到引用合同的默认端点元素 - 托管wcf

[英]Could not find default endpoint element that references contract - Hosting wcf

I have one wcf service on this site http://wswob.somee.com/wobservice.svc 我在这个网站上有一个wcf服务http://wswob.somee.com/wobservice.svc

I try to consume that service with my winform app. 我尝试使用我的winform应用程序来使用该服务。 This is the error I receive when I create an instant of the service 这是我创建服务即时时收到的错误

com.somee.wobservice.IwobserviceClient myservice = new com.somee.wobservice.IwobserviceClient();

error: 错误:

Could not find default endpoint element that references contract
'com.somee.wobservice.Iwobservice' in the ServiceModel client configuration section. This 
might be because no configuration file was found for your application, or because no 
endpoint element matching this contract could be found in the client element.

I searched and modified my app.config file: 我搜索并修改了我的app.config文件:

<system.serviceModel>
<behaviors>
  <endpointBehaviors>
    <behavior name="wobservice">
      <clientVia />
    </behavior>
  </endpointBehaviors>
</behaviors>

<client>
  <endpoint
      name="wobservice"
      address="http://wswob.somee.com/wobservice.svc"
      binding="webHttpBinding"
      contract="com.somee.wobservice"
      behaviorConfiguration="wobservice" />
</client>

</system.serviceModel>
</configuration>

And my web.config in wcf folder: 和我在wcf文件夹中的web.config:

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

          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>

        <endpointBehaviors>
            <behavior name="Web">
                <webHttp/>
            </behavior>
        </endpointBehaviors>
    </behaviors>

      <serviceHostingEnvironment  multipleSiteBindingsEnabled="true">
          <baseAddressPrefixFilters>
              <add prefix="http://wswob.somee.com/"/>
          </baseAddressPrefixFilters>
      </serviceHostingEnvironment>

      <bindings>
          <webHttpBinding>
              <binding>
                  <security mode="None" />
              </binding>
          </webHttpBinding>
      </bindings>

      <protocolMapping>
           <add binding="basicHttpsBinding" scheme="https"/>
           <add binding="basicHttpBinding" scheme="http"/>
      </protocolMapping>

      <services>
           <service name="wobwcf.wobservice">
              <endpoint address="" 
                        binding="webHttpBinding" 
                        behaviorConfiguration="Web" 
                        contract="wobwcf.Iwobservice" />
           </service>
      </services>
   </system.serviceModel>

I don't really sure which part I got wrong. 我不确定哪个部分出错了。 My experience of wcf is just a week... 我对wcf的体验只有一周......

Copy system.serviceModel section from the app.config in your library project and put it in your web.config and refresh service reference. 从库项目中的app.config复制system.serviceModel部分,并将其放在web.config和刷新服务引用中。 See also this answer. 另见这个答案。 Could not find default endpoint element 找不到默认端点元素

Add "WSHttpBinding" end point in your WCF service web.config file like below 在WCF服务web.config文件中添加“WSHttpBinding”端点,如下所示

 <endpoint address="web" behaviorConfiguration="jsonBehavior" binding="webHttpBinding" bindingConfiguration="webHttpBindingWithJsonP" contract="DataService.IDataService"/>
 <endpoint address="" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="DataService.IDataService"  />

and in your app.config file write code like below 并在您的app.config文件中编写如下代码

<system.serviceModel>
<bindings>
  <wsHttpBinding>
    <binding name="WSHttpBinding_IDataService" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
      <security mode="None" />
    </binding>
  </wsHttpBinding>
</bindings>
<client>
  <endpoint address="http://localhost/pricedataservice/DataService.svc" binding="wsHttpBinding"
      bindingConfiguration="WSHttpBinding_IDataService" contract="DataService.IDataService"
      name="WSHttpBinding_IDataService" />
</client>

I am sure this will fix your problem and below blog will help you to understand different type of binding in WCF service 我相信这将解决您的问题,并在博客下面将帮助您了解WCF服务中的不同类型的绑定

http://www.dotnet-tricks.com/Tutorial/wcf/VE8a200713-Understanding-various-types-of-WCF-bindings.html http://www.dotnet-tricks.com/Tutorial/wcf/VE8a200713-Understanding-various-types-of-WCF-bindings.html

Add client definition in your client web.config file like below; 在客户端web.config文件中添加客户端定义,如下所示;

 <system.serviceModel>
  /////
 <client>
         <endpoint  address="referencedurl"
          binding="webHttpBinding" bindingConfiguration=""
          contract="MemberService.IMemberService"
          name="MemberServiceEndPoint"
          behaviorConfiguration="Web">
      </endpoint>
 </client> 
////
 </system.serviceModel>

AND Service Reference Name must same as the Interfaces prefix. AND服务引用名称必须与Interfaces前缀相同。 contract=" ReferenceName .IMemberService" contract =“ ReferenceName .IMemberService”

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM