重复的端点 wcf 服务配置
Duplicated endpoints wcf service config
您好,我正在尝试配置我的 wcf 以便能够使用 https,但我收到以下错误:
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>
谁能看出配置有什么问题或知道如何修复端点错误?
好吧,事实证明我太厚了,除了检查地址端点之外,您还需要检查端点合同和服务名称。我的配置应该是:
<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 位
您好,我正在尝试配置我的 wcf 以便能够使用 https,但我收到以下错误:
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>
谁能看出配置有什么问题或知道如何修复端点错误?
好吧,事实证明我太厚了,除了检查地址端点之外,您还需要检查端点合同和服务名称。我的配置应该是:
<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 位