J'ai un service simple que j'ai déployé pour Azure. Il est accessible via:
http://xxxxxxxxxxxxxxxxxxxxxxx.cloudapp.net/MyTestService.svc
L'URL du WSDL utilise la machine interne nom à la place d'un DNS public:
svcutil.exe http://rd001520d328923a/MyTestService.svc?wsdl
Évidemment, le WSDL n'est pas accessible depuis l'extérieur de la machine avec cette.
Je suis au courant de quelques choses qui peuvent être changées si vous exécutez ce dans IIS, ou si vous connaissez l'url du service. Par exemple, l'évolution de l' <serviceMetadata>
config pour spécifier l' httpGetUrl
de la propriété, mais cela ne fonctionne pas comme je l'aurais pour inclure l'URL absolue. À l'aide d'une URL relative, il utilise toujours l'interne le nom de la machine. Le vrai problème est que le WSDL comprend des références d'URL avec le nom de la machine, par conséquent, le rendant inutilisable.
Il y a deux déplorables des solutions de contournement:
Il a été suggéré que je pourrais prendre le WSDL, de l'éditer pour corriger les Url et puis la télécharger afin d'être accessible à partir d'une URL différente.
J'ai trouvé un correctif à partir du début de 2010 a été disponible, mais il doit y avoir une meilleure façon.
Comment cela peut-il être résolu que le public face DNS utilisé à la place du nom de la machine?