Question

Je me demandais comment un projet client dans Visual Studio pouvait référencer un service WCF qui n'a pas de liaison mex.Chaque fois que je supprime la liaison mex par défaut dans un exemple de service WCF, les applications clientes ne peuvent pas trouver le service et dans les commentaires générés automatiquement, il est recommandé que dans l'environnement de production, la liaison mex soit supprimée.Alors, comment les applications clientes sont-elles censées trouver le service et le référencer?

Était-ce utile?

La solution

Le point de terminaison mex est une partie nécessaire des services SOAP WCF.C'est ce qui permet aux boîtes à outils client de supprimer le WSDL et de générer automatiquement des classes proxy.Comme vous le faites remarquer, sans cela, les clients n'ont aucun moyen d'obtenir les informations nécessaires pour utiliser le service.Si vous voulez que les clients puissent consommer et trouver votre service, vous devez le laisser disponible lorsque votre service est en production.

Autres conseils

Si vous avez accès aux assemblys qui contiennent les types qui définissent le contrat de service, les opérations et les contrats de données, vous pouvez simplement créer un proxy à la volée en utilisant ChannelFactory.Dans ce cas, vous n’avez pas besoin de récupérer les métadonnées du service car vous avez déjà accès à toutes les informations dont vous avez besoin pour appeler le service.

Par exemple

// Create service proxy on the fly
var factory = new ChannelFactory<IMyServiceContract>("NameOfMyClientEndpointInConfigFile");
var proxy = factory.CreateChannel();

// Create data contract
var requestDataContract = new MyDataContract();

// Call service operation.
var responseDataContract = proxy.MyServiceOperation(requestDataContract);

Cela aide également si vous avez accès au fichier de configuration côté service afin que vous puissiez copier les détails du point de terminaison dans votre configuration client.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top