2014-09-10 4 views
0

J'ai 1 service et plusieurs points de terminaison comme indiqué ci-dessous. Je veux avoir un comportement général et écraser mon wshttpbinding avec un autre comportement mais quand j'essaye que je reçois l'erreur me ditService WCF-1, points de terminaison multiples et comportements multiples?

Message d'erreur d'analyseur: Il n'y a aucun comportement de point final nommé «CredentialValidator».

qu'est-ce que je fais mal?

<services> 
    <service name="myservice.Service.myserviceService" behaviorConfiguration="myserviceBehaviour"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="https://localhost:44300/myService.svc"/> 
     <!--<add baseAddress="http://localhost:54941/myService.svc"/>--> 
     <!--<add baseAddress="http://myservicewcf.myurl-staging.com/myService.svc"/>--> 
     <add baseAddress="https://myservice.myurl-staging.com/myService.svc"/> 
     <add baseAddress="https://myservice.production.com/myService.svc"/> 
     <!--<add baseAddress="https://myservicetest.myurl-staging.com/myService.svc"/>--> 
     </baseAddresses> 
    </host> 
    <endpoint name="myserviceSoap12Endpoint" address="soap12" binding="customBinding" bindingConfiguration="soap12selfBinding" contract="myservice.Service.ImyserviceService" behaviorConfiguration="CredentialValidator" /> 
    <endpoint name="myserviceWSHttpEndpoint" address="ws" binding="wsHttpBinding" bindingConfiguration="myserviceWSHttpBinding" contract="myservice.Service.ImyserviceService"/> 
    <endpoint name="myserviceBasicHttpEndpoint" address="" binding="basicHttpBinding" bindingConfiguration="myserviceBasicHttpBinding" contract="myservice.Service.ImyserviceService"/> 
    <!--<endpoint name="myserviceBasicHttpEndpoint2" address="" binding="basicHttpBinding" bindingConfiguration="myserviceBasicHttpBinding" contract="myservice.Service.ImyserviceService2"/>--> 
    <endpoint name="myserviceMexEndpointHttps" address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/> 
    </service> 
</services> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name ="CredentialValidator"> 
     <serviceMetadata httpsGetEnabled="true"/> 
     <serviceDebug 
     includeExceptionDetailInFaults="true"/> 
     <serviceCredentials> 
     <userNameAuthentication userNamePasswordValidationMode="Custom" 
           customUserNamePasswordValidatorType="myservice.Service.CustomUserNameValidator, myservice"/>   
     </serviceCredentials> 
    </behavior> 
    <behavior name="myserviceBehaviour"> 
     <useRequestHeadersForMetadataAddress/> 
     <serviceMetadata httpsGetEnabled="true"/> 
     <serviceDebug includeExceptionDetailInFaults="true"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

Répondre

1

Essayez de mettre votre comportement CredentialValidator dans <endpointBehaviors> au lieu de balises <serviceBehaviors>.

Parce que le message d'exception indique clairement qu'il n'existe aucun endpointBehavior avec ce nom. Alors, donnez-en un! Comme ceci:

<behaviors> 
    **<endpointBehaviors>** 
    <behavior name ="CredentialValidator"> 
     <serviceMetadata httpsGetEnabled="true"/> 
     <serviceDebug includeExceptionDetailInFaults="true"/> 
    </behavior> 
    **</endpointBehaviors>** 

    <serviceBehaviors> 
    <behavior name="myserviceBehaviour"> 
     <useRequestHeadersForMetadataAddress/> 
     <serviceMetadata httpsGetEnabled="true"/> 
     <serviceDebug includeExceptionDetailInFaults="true"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
+0

N'est-ce pas pour le côté client? J'essaie cela pour le service. Fondamentalement, je veux sécuriser ma liaison personnalisée avec des informations d'identification alors que basichttp n'a pas ce comportement. J'ai édité mon code en ajoutant des informations d'identification dans le comportement. EndpointBehaviour n'a pas de serviceCredentials comme prévu. – batmaci

+0

btw message d'erreur ne me dit pas que "endpointbehaviour" mais "comportement de point de terminaison" je ne sais pas si cela fait une différence en termes de termes – batmaci

Questions connexes