2010-04-15 6 views
2

Je n'arrive pas à faire fonctionner mon service WCF avec plus d'une liaison http.Service WCF 3.5 et plusieurs liaisons http

Dans IIS 7, je dois les liaisons http:/service et http: /service.test tant au port 80.

Dans mon web.config j'ai ajouté les baseAddressPrefixFilters mais je ne peux pas ajouter plus d'un

<serviceHostingEnvironment> 
    <baseAddressPrefixFilters> 
     <add prefix="http://service"/> 
     <add prefix="http://service.test"/> 
    </baseAddressPrefixFilters> 
</serviceHostingEnvironment> 

on obtient quasiment la même erreur

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

comme si aucun filers ont été spécifiés à tous (Cette collection contient déjà une adresse avec le schéma http. Il peut y avoir au plus une adresse par schéma dans cette collection. Nom du paramètre: item)

Si j'ajoute un seul filtre, le service fonctionne mais ne répond que sur l'adresse du filtre ajouté .

J'ai aussi essayé avec specifing plusieurs points de terminaison comme (et un seul filtre):

<endpoint address="http://service.test" binding="basicHttpBinding" bindingConfiguration="" contract="IService" /> 
<endpoint address="http://service" binding="basicHttpBinding" bindingConfiguration="" contract="IService" /> 

Alors encore que l'adresse indiquée aussi dans les travaux de filtre et les autres renvoie cette erreur:

Server Error in Application "ISPSERVICE" HTTP Error 400.0 - Bad Request

Cordialement Morten

Répondre

0

je tentais de déployer un service WCF à un de mes serveurs web othe jour et a rencontré un problème. Je continuais à recevoir le message d'erreur suivant:

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

Le problème ne se produit pas sur ma machine locale, mais fait sur le serveur web rendant un peu difficile de comprendre ce qui était à l'origine. Cela s'est passé sur le serveur car mon serveur Web se trouve dans un environnement d'hébergement partagé, auquel cas le service WCF doit également connaître l'en-tête de l'hôte. Pour ce faire, j'ai navigué à <system.serviceModel> dans le web.config et ajouté ce qui suit:

<serviceHostingEnvironment> 
<baseAddressPrefixFilters>  
    <add prefix=http://MyHostHeader /> 
</baseAddressPrefixFilters> 
</serviceHostingEnvironment>