J'ai un service Web WCF simple. Il est hébergé sur IIS sous le site Web par défaut de notre domaine de production. (adresse locale : 10.10.20.100)
Par défaut, ce site Web par défaut était configuré pour les IP "Toutes les affectations" sur le port 80 : cependant, j'ai remarqué que cela faisait générer au service WCF son WSDL en utilisant le nom DNS local du serveur. c'est-à-dire que toutes les URIs dans le wsdl étaient
http://monserveur.sous-domaine.domaine.com/.../...
Ce n'était pas bon car je dois exposer ce service à des sites qui n'ont aucune connaissance du DNS interne des environnements de production. Et ce serveur particulier n'a pas de nom DNS externe. Juste une adresse IP externe...
J'ai eu du succès en modifiant le paramètre dans IIS de "Toutes les affectations" -> "10.10.20.100"
Cela fait générer le WSDL du service avec les URIs
http://10.10.20.100/.../...
C'est bien pour d'autres machines dans le sous-domaine et sur d'autres sous-domaines mais c'est ici que je reste bloqué. L'adresse IP externe du serveur (1.2.3.4) est mappée via une certaine traduction NAT/PAT donc elle n'est pas configurée explicitement dans les paramètres IP du serveur (c'est-à-dire qu'elle n'apparaît pas sous Config IP)
Donc si je change l'adresse IP du site Web par défaut d'IIS de "Toutes les affectations" -> "1.2.3.4" comme je l'ai fait pour l'adresse interne, alors le service WCF renvoie simplement...
Requête incorrecte (Nom d'hôte non valide)
Et si je laisse IIS configuré sur l'adresse IP interne, et que j'essaie d'accéder au service via l'adresse IP externe, j'obtiens
Aucune correspondance de liaison de protocole pour l'adresse donnée
'http://1.2.3.4/TestService/Service.svc'. Les liens de protocole sont
configurés au niveau du Site dans la configuration d'IIS ou WAS
Y a-t-il un moyen de faire générer au WSDL de l'IIS/WCF ses URIs avec une adresse IP externe qui n'est pas configurée explicitement sur le serveur ?
Quelqu'un peut-il m'aider s'il vous plaît avant que je fasse voler les services WCF par la fenêtre.