Pour IIS7 vous n'avez pas l'ajouter sur le web.config, mais pour le fichier de configuration IIS.
Tout d'abord modifier les liaisons pour votre site web afin que le protocole HTTP spécifie un nom d'hôte si vous ne l'avez pas déjà cela permettra d'assurer qu'il obtient le nom correct en vertu de l'HTTP.
Accédez à C:\Windows\System32\inetsrv\config et ouvrir applicationHost.config
Recherchez les sites de l'article. Vous verrez quelque chose comme ce qui suit
<sites>
<site name="Default Web Site" id="1">
<application path="/">
<virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:puck" />
<binding protocol="net.tcp" bindingInformation="808:*" />
<binding protocol="net.pipe" bindingInformation="*" />
<binding protocol="net.msmq" bindingInformation="localhost" />
<binding protocol="msmq.formatname" bindingInformation="localhost" />
<binding protocol="http" bindingInformation="*:80:puck.idunno.org" />
<binding protocol="http" bindingInformation="*:80:localhost" />
<binding protocol="https" bindingInformation="*:443:" />
</bindings>
</site>
....
</sites>
Vous pouvez voir que les liaisons pour le protocole http spécifier un en-tête d'hôte, mais https ne fonctionne pas. Lorsque vous êtes à la navigation sur le web, vous ne pouvez pas utiliser les en-têtes ordinateur hôte via le protocole HTTPS, mais WCF utilise encore lors de la génération du WSDL - s'il ne peut pas en trouver un, il en sera de retour pour le nom de la machine.
Donc tout ce que vous devez faire est de modifier la liaison HTTPS comme
<binding protocol="https" bindingInformation="*:443:puck" />
en ajoutant le bon nom de domaine complet à la fin de la liaison de l'information. Réinitialiser IIS et WCF recevez dès maintenant.
Le IIS6 solution a déjà été posté par darin