0 votes

Comment lier un service WCF à une adresse IP

Je développe un service WCF hébergé par IIS, en utilisant VSTS2008 + C# + .Net 3.5. Je trouve que lors de la référence du service depuis un client en utilisant Ajouter une référence de service..., le client doit pouvoir résoudre le nom de machine en adresse IP, car le fichier WSDL fait référence à certains fichiers de schéma par le nom de machine. Voici un exemple d'une partie du fichier WSDL, afin de parser le fichier WSDL côté client pour générer un proxy, nous devons pouvoir résoudre le nom de machine testmachine1 en adresse IP correspondante,

Ma question est, pour une raison quelconque le nom de machine ne peut pas être résolu tout le temps (pour des raisons non techniques), donc je veux me lier à l'adresse IP du serveur IIS hébergeant. Est-ce possible ? Si oui, j'apprécierais si quelqu'un pouvait conseiller. Voici mon fichier de configuration WCF web.config actuel, je veux savoir comment le modifier pour lui permettre de fonctionner avec l'adresse IP,

merci d'avance, George

2voto

marc_s Points 321990

Si votre service WCF est hébergé dans IIS, vous ne pouvez pas définir une adresse séparée. Vous devez utiliser l'URL du répertoire virtuel où se trouve votre fichier SVC - soit avec un nom de machine (http://yourserver/virtualdir/myservice.svc) ou une adresse IP (http://123.123.123.123/virtualdir/myservice.svc).

Si vous utilisez l'adresse IP pour ajouter la référence au service, cette adresse IP sera utilisée dans le WSDL généré par l'importation du service.

Si vous hébergez le service WCF vous-même (service Windows, application console), vous pouvez définir l'adresse du service dans la configuration, et utiliser soit un nom de machine, soit une adresse IP pour la machine.

Marc

1voto

dwhittenburg Points 328

J'avais le même problème et j'ai vu votre message en cherchant des réponses à mon propre problème.

Je pense avoir trouvé une solution, qui consistait à changer le binding du site IIS pour qu'il corresponde à l'IP. Je ne comprends toujours pas pourquoi cela ne peut pas être défini dans le fichier .config.

Voici le lien vers la solution que j'ai trouvée (http://blogs.msdn.com/wenlong/archive/2007/08/02/how-to-change-hostname-in-wsdl-of-an-iis-hosted-service.aspx).

Voici un lien vers mon message sur mon problème (http://stackoverflow.com/questions/1925519/net-wcf-service-references-use-server-name-rather-than-ip-causing-issues-when-co).

Voici un lien vers mon message sur la découverte de la solution (http://stackoverflow.com/questions/1941900/wcf-hosting-service-in-iis-machine-name-automattically-being-picked-up-by-wcf).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X