IIS Multi host header et service WCF

Si plusieurs host headers sont déclarés dans une application web au niveau IIS et si l’on veut accéder à un service wcf voici l’erreur que l’on reçoit :

This collection already contains an address with scheme http.  There can be at most one address per scheme in this collection.
Parameter name: item

Une erreur pas très explicite, j’ai passé une bonne heure la dessus, pour faire fonctionner le service on peut soit declarer le host “principal” dans la section service dans web.config soit utiliser cette autre méthode que je préfere :

Au niveau du fichier svc, faire la déclaration suivante :

<%@ ServiceHost Service="MyService" Factory="MyServiceHostFactory" %>

puis créer une classe MyServiceHostFactory dont le but sera d’intercepter la requête et de filtrer les différents hosts pour n’en renvoyer qu’un seul.

public class MyServiceHostFactory : ServiceHostFactory



{



    protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)



    {



        var addresses = new Uri[] { baseAddresses[0] };



        var serviceHost = new ServiceHost(serviceType, addresses);



        return serviceHost;



    }



}


Aucun commentaire: