简体   繁体   中英

Duplicated endpoints wcf service config

Hi am am trying to configure my wcf to be able to use https but I am receiving the following error:

A binding instance has already been associated to listen URI ' http://devwcfinternal/TestApp/FastquoteWcfService.svc '. If two endpoints want to share the same ListenUri, they must also share the same binding object instance. The two conflicting endpoints were either specified in AddServiceEndpoint() calls, in a config file, or a combination of AddServiceEndpoint() and config.

Everything I have looked at says to make sure my services have different addresses and as far as I can see they do:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <pages controlRenderingCompatibilityVersion="4.0" />
    <customErrors mode="Off" />
  </system.web>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
          <etwTracking profileName="EndToEndMonitoring Tracking Profile" />
        </behavior>
        <behavior name="wsSecureBehavior">
          <serviceMetadata httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="false" />
    <protocolMapping>
      <add scheme="http" binding="basicHttpBinding" />
      <add scheme="https" binding="wsHttpBinding" />
    </protocolMapping>
    <diagnostics etwProviderId="830b12d1-bb5b-4887-aa3f-ab508fd4c8ba">
      <endToEndTracing propagateActivity="true" messageFlowTracing="true" />
    </diagnostics>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_IWcfService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="9999999" maxBufferPoolSize="524288" maxReceivedMessageSize="9999999" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
        <binding name="BasicHttpBinding_MARAX2012QuoteService">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Windows" />
            <message clientCredentialType="UserName" />
          </security>
        </binding>
      </basicHttpBinding>
      <wsHttpBinding>
        <binding name="wsHttp_IFastQuoteService" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
          <security mode="Transport">
            <transport clientCredentialType="None" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    <services>
      <service behaviorConfiguration="wsSecureBehavior" name="WcfService.FastquoteService">
        <endpoint address="secure" binding="wsHttpBinding" bindingConfiguration="wsHttp_IFastQuoteService" name="FastQuoteServiceSecure" contract="WcfService.IFastquoteService" />
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWcfService" name="FastQuoteService" contract="WcfService.IFastquoteService" />
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" name="mex" />
      </service>
    </services>
    <client>
      <endpoint address="http://devwcfinternal/AXWcfService/AXWcfService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWcfService" contract="AXWcfService.IAXWcfService" name="BasicHttpBinding_IAXWcfService" />
      <endpoint address="http://devwcfinternal/NotesWcfService/NotesWcfService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWcfService" contract="NotesWCFService.INotesWcfService" name="BasicHttpBinding_INotesWcfService" />
      <endpoint address="http://devwcfinternal/AddressSearchService/AddressFinder.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWcfService" contract="AddressSearchService.IAddressFinder" name="IAddressFinder" />
      <endpoint address="http://devwcfinternal/NotificationsWcfService/NotificationsService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWcfService" contract="NotificationsWcfService.INotificationsService" name="BasicHttpBinding_INotificationsWcfService" />
      <endpoint address="http://devwcfinternal/UsersWcfService/UsersWcfService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWcfService" contract="UsersWcfService.IUsersService" name="BasicHttpBinding_IUsersService" />
      <endpoint address="http://devwcfinternal/CustomerContactsWcfService/CustomerContactsService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWcfService" contract="CustomerContactsWcfService.ICustomerContactsService" name="BasicHttpBinding_ICustomerContactsService" />
      <endpoint address="http://devwcfinternal/CustomerActivity/CustomerActivityWcfService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWcfService" contract="CustomerActivityWcfService.ICustomerActivityWcfService" name="BasicHttpBinding_ICustomerActivityWcfService" />
      <endpoint address="http://ax12aosdev/MicrosoftDynamicsAXAif60/MARQuoteService/xppservice.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_MARAX2012QuoteService" contract="Ax2012QuotesService.MARAX2012QuoteService" name="BasicHttpBinding_Ax2012QuotesService" />
    </client>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="UrlRoutingModule" />
      <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </modules>
    <handlers>
      <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral,                      PublicKeyToken=b03f5f7f11d50a3a" />
    </handlers>
  </system.webServer>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>

Can anyone see what is wrong with the config or know how to fix the endpoint error?

Ok, as it turns out I was being totally thick and as well as checking the address endpoints, you need to check the endpoint contracts and service name. My config should have been:

      <service behaviorConfiguration="wsSecureBehavior" name="WcfService.FastquoteWCFService">
        <endpoint address="secure" binding="wsHttpBinding" bindingConfiguration="wsHttp_IFastQuoteService" name="FastQuoteServiceSecure" contract="WcfService.IFastquoteWCFService" />
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWcfService" name="FastQuoteService" contract="WcfService.IFastquoteWCFService" />
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" name="mex" />
      </service>

Missed off the WCF bit in the service name and endpoint contracts

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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