2015-11-25 128 views
1

你好我正在尝试我的WCF配置为能够使用HTTPS,但我收到以下错误:重复的端点WCF服务配置

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.

一切我已经看过说要确保我的服务有不同的地址而据我可以看到他们做的:

<?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> 

有人能看到什么是错的配置或知道如何解决端点错误?

回答

0

好吧,事实证明我的工作非常繁琐,而且还需要检查地址端点,您需要检查端点合同和服务名称。我的配置应该是:

 <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> 

错过掉在服务名称WCF位和端点契约