2010-10-27 3 views
3

WCF vous permet de spécifier un fichier WSDL externe qui doit être publié avec le service plutôt que WSDL généré par WCF. Dans une approche de conception WSDL-first, il est logique de publier le WSDL source plutôt que le WSDL généré.WCF: correction de l'adresse de point de terminaison lors de l'utilisation de externalMetadataLocation

ce paramètre est réglé à l'aide du externalMetadataLocation:

<serviceBehaviors> 
    <behavior> 
    <serviceMetadata httpGetEnabled="true" externalMetadataLocation="path_to_my_wsdl.wsdl"/> 
    <serviceDebug includeExceptionDetailInFaults="false"/> 
    </behavior> 
</serviceBehaviors> 

Le problème que je rencontre est que quand je fais cela, il sert la droite jusqu'à WSDL, qui a la mauvaise adresse de point de terminaison. Je souhaite que l'adresse de point de terminaison soit remplacée au moment de l'exécution par l'adresse de point de terminaison réelle du service (qui variera en fonction de l'emplacement de déploiement).

Y at-il un moyen facile de faire cela?

Répondre

3

Je suis en aucun cas un expert WCF, mais ne peut pas vous faire cela en spécifiant sur le point de terminaison dans le fichier de configuration (web.config), par exemple:

<system.serviceModel> 
    <services> 
     <service> 
      <endpoint 
       listenUri="https://yourdomainname.com/servicename.svc" 
       address="https://yourdomainname.com/servicename.svc"> 

Note: « listenUri "est l'adresse physique et" l'adresse "de l'extrémité est l'adresse logique. C'est à dire. "listenUri" est l'endroit où le service est vraiment et le point final est ce que le client demandera.

Si elles sont identiques, vous n'avez pas besoin d'écouterUri je crois.

Questions connexes