Peut-être que je ne comprends pas, mais j'ai un service qui est déployé sur une machine IIS 6. Cette machine a une adresse LAN et une adresse Internet publique.Les points de terminaison WCF me rendent fou
Comment diable suis-je censé pouvoir publier ce service à la fois accessible?
- Adresse 1: http://serverName/ServiceName/Service.svc
- Adresse 2: http://www.companyName.com/ServiceName/Service.svc
Au début, je pensais: Pas grand-chose, 2 points d'extrémité. J'ai donc
<endpoint
address="Address 1"
binding="wsHttpBinding"
bindingConfiguration="DefaultBindingConfiguration"
name="RemoteEndpoint" />
<endpoint
address="Address 2"
binding="wsHttpBinding"
bindingConfiguration="DefaultBindingConfiguration"
name="LocalEndpoint" />
Le code client ressemble alors à:
public void createServiceProxy()
{
if (Util.IsOperatingLocally())
this.proxy = new ProxyClient("LocalEndpoint");
else
this.proxy = new ProxyClient("RemoteEndpoint");
}
Pas de dés. Impossible d'ajouter la référence de service.
Aucune liaison de protocole ne correspond à l'adresse donnée 'Adresse 1'. Les liaisons de protocole sont configurées au niveau du site dans la configuration IIS ou WAS.
Ensuite, j'ai pensé: Peut-être que la balise de l'hôte et son tag DNS aidera. Non, c'est pour l'authentification.
Ensuite, j'ai pensé: j'utiliserai net.tcp pour le point de terminaison local. Oups ... IIS 6 ne prend pas en charge net.tcp.
Puis j'ai pensé: Je sais, le constructeur ProxyClient prend une chaîne remoteAddress comme son deuxième paramètre. Maintenant, ça va ressembler à:
<endpoint
address=""
binding="wsHttpBinding"
bindingConfiguration="DefaultBindingConfiguration"
name="MyEndpointName" />
public void createServiceProxy()
{
if (Util.IsOperatingLocally())
this.proxy = new ProxyClient("MyEndpointName", "Address 1");
else
this.proxy = new ProxyClient("MyEndpointName", "Address 2");
}
Apparemment non. Lorsque vous essayez de instancier le ProxyClient ...
Impossible de trouver le point final élément dans la section de configuration du client ServiceModel avec le nom de « MyEndpointName » et le contrat MyService.IService.
Ce qui me conduit à la app.config dont la section client généré ressemble à ceci:
<client>
<endpoint address="http://localhost:3471/Service.svc" binding="customBinding"
bindingConfiguration="MyEndpointName" contract="MyService.IService"
name="MyEndpointName">
<identity>
<userPrincipalName value="DevMachine\UserNa,e" />
</identity>
</endpoint>
</client>
Ce qui ne vous regarde pas droit à moi.
Ma prochaine pensée n'est pas saine. S'il vous plaît aider.
Si vous avez raison, je nommer mon premier enfant né Otávio. –
Un jour, je pourrais vous présenter le petit Otávio. Merci. –
@SnOrfus - Heureux d'être de l'aide et merci pour l'honneur :-) –